gpt4 book ai didi

c# - 如何在 jQuery DataTables 中添加静态列

转载 作者:太空狗 更新时间:2023-10-29 23:44:49 25 4
gpt4 key购买 nike

我正在使用 jQuery DataTables 1.10.7。我已经绑定(bind)了几个专栏。其中很少有列是静态的,很少有是动态的。

所以目前我已经在 DataTable 中绑定(bind)了大约 20 列(静态 + 动态)。现在,我已经绑定(bind)到 20 列,现在假设如果我绑定(bind) 21 列,它会给我类似

的错误

DataTables warning: table id=DataGrid - Invalid JSON response. For more information about this error, please see http://datatables.net/tn/1

请附上截图。在第一个快照中,它一直工作到手头列,下一个屏幕截图将在我绑定(bind) OnHand 的下一列时显示错误。

我在我的数据表中也设置了这部分。

"aoColumns": [
{ sWidth: '1%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' },
{ sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' },
{ sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' },
{ sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }
],

enter image description here enter image description here

我的代码是这样的

function OnddlRegionRankGroupChange(val) {

var Tblheader = '';
var trHTML = '';

Re_Bind_DataTable();
$("#DataGrid").empty()

Tblheader = '<thead><tr><th rowspan="2" style="width: 5%;">Excl.</th><th rowspan="2">CUC</th> <th rowspan="2"> Late Model </th><th colspan="2">' + '1 Year Rank </th><th colspan="2"> 1 Year Sales Qty </th> <th rowspan="2"> Whse Looksup </th><th colspan="12" align="center"> Qty of Parts Sold by Mo.' +
'</th> <th rowspan="2"> Days OOS </th> <th rowspan="2"> On Hand </th> <th colspan="4" align="center"> Re-Order High </th> <%--<th> &nbsp; </th>--%> ' +
'</tr> <tr> <th> Whse </th> <th> Region </th><th> Whse </th> <th>Region</th><th> 12 </th> <th>11</th> <%--<th> .... </th>--%> <th class="cellhidden"> ' +
'10 </th> <th class="cellhidden">9 </th> <th class="cellhidden"> 8 </th> <th class="cellhidden"> 7 </th> <th class="cellhidden"> 6 </th>' +
'<th class="cellhidden"> 5 </th> <th class="cellhidden">4 </th> <th> 3</th> <th>2 </th> <th> 1 </th> <th> Current </th> <th> Diff </th> <th>' +
' Recomd </th> <th> Last </th> <%--<th> &nbsp; </th>--%> </tr> </thead>';

$("#DataGrid").append(Tblheader);

$('#DataGrid').DataTable({
"iDisplayLength": 25,
"aaSorting": [[0, 'desc']],
"bServerSide": true,
"bProcessing": false,
"bPaginate": true,
"sDom": 'fltip',
"bDeferRender": true,
"sAjaxSource": '<%= Url.Action("GetTest") %>',
"fnServerParams": function (aoData) {
aoData.push({ "name": "WhseID", "value": $("#ddlWarehouse").val() },
{ "name": "strCatg", "value": $("#ddlCategory").val() })
},
"aoColumns": [
{ sWidth: '1%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' },
{ sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' },
{ sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' },
{ sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }, { sWidth: '5%' }
],
"fnInitComplete": function (oSettings, json) {
setTimeout(function () { $.loader('close'); }, 1000);
}
});
}

最佳答案

我终于得到了问题的答案。实际上,我的问题是我绑定(bind)了 20 列(包括静态和动态)。直到 20 cols 它工作得很好。但是一旦我继续尝试在那个时候再添加一个 col(21th cols),我就遇到了问题。

解决方案是只需要在 DataTable 配置设置中设置以下行

"sServerMethod": "POST",

例如

 $("#DataGrid").DataTable({
"iDisplayLength": 10,
"bServerSide": true,
"sDom": 'fltip',
"sAjaxSource": '<%= Url.Action("GetTest") %>',
*"sServerMethod": "POST"*
})

因为 Post 方法存储响应的能力优于 GET 响应。 Get 方法具有存储响应的限制。

关于c# - 如何在 jQuery DataTables 中添加静态列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30860789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com