我正在JQUERY DataTable
尝试MVC
。我要做的第一件事是尝试建立基地。
我正在尝试动态获取列和数据值。我正在fnServerData
使用sAjaxSource
。
我的控制器文件中有一个断点,以查看它是否被调用以使我在继续之前已正确设置它。
当我运行此代码时。我得到"TypeError: k is undefined"
所以控制器没有被调用
当被搜索到这个问题时,我来了jQuery datatables issue它指出
为了使 DataTables 能够正确运行,目标表的 HTML 必须以格式良好的方式布局,并声明 'thead' 和 'tbody' 部分。
但是我动态地形成了一切,所以我不确定做错了什么。我的示例代码如下。
任何有关以正确方式进行操作的建议都会有所帮助!
CSHMTL 文件
<table id="TestDatatable">
</table>
数据表脚本文件
$('#TestDatatable').dataTable({
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "Search/Testcall",
"fnServerData": function (sSource, aoData, fnCallback, oSettings) {
aoData.push({ "name": "more_data", "value": "my_value" });
oSettings.jqXHR = $.ajax({
"dataType": 'json',
"type": "POST",
"url": sSource,
"data": aoData,
"success": fnCallback
});
}
});
样品模型
public class DataTableParam
{
/// <summary>
/// Request sequence number sent by DataTable, same value must be returned in response
/// </summary>
public string sEcho { get; set; }
/// <summary>
/// Text used for filtering
/// </summary>
public string sSearch { get; set; }
/// <summary>
/// Number of records that should be shown in table
/// </summary>
public int iDisplayLength { get; set; }
/// <summary>
/// First record that should be shown(used for paging)
/// </summary>
public int iDisplayStart { get; set; }
}
控制器
public JsonResult Testcall(DataTableParam searchData)
{
return Json("", JsonRequestBehavior.AllowGet);
}
更新
我在解决这个问题时得到的另一个更新是我们需要先设置列,然后再将数据分配给 DataTable。但在我的场景中,我试图在 ajax 调用中点击控制器,但在此之前我得到了上述错误。
更新
动态数据表根本不可能吗?我只会在运行时知道列和数据吗?
谢谢