【发布时间】:2016-02-18 15:07:03
【问题描述】:
我正在尝试在客户端模式下使用 DataTable。我的意思是我想在客户端(网络浏览器)中完成所有数据加载、行添加和删除过程。
我正在使用以下代码来初始化 DataTable,它会从复杂的类对象 (PriceItems) 中正确加载表行。但是在初始化过程中,它会向服务器发出 http post 请求。 为什么? 我怎样才能防止这种情况发生?
var pricesTable = $('#pricesTable').DataTable({
data: viewModel.product.PriceItems,
columns: [{
data: 'Id',
visible: false
}, {
data: 'Name'
}, {
data: 'Value'
}, {
data: 'CurrencySymbol'
}, {
data: 'UnitName'
}],
sort: false,
processing: false,
serverSide: false,
deferLoading: 0,
info: false,
filter: false,
lengthChange: false,
fnInitComplete: function (oSettings, json) {
$('#pricesTable tbody tr:eq(0)').click();
}
});
EDIT-1: 如果我使用 (serverSide: true) DataTable 停止调用 mvc 控制器!
EDIT-2: 在服务器端填充的数据模型使用下面的代码。
var viewModel = new ProductFormViewModel(@Html.Raw(Json.Encode(Model)));
【问题讨论】:
-
viewModel.product.PriceItems获取数据... -
请看EDIT 2
-
当您将“模型”传递给视图时,它实际上是否已被填充?只是想知道您的查询是否使用延迟执行并尝试在数据表初始化时枚举结果集。
-
模型在控制器的编辑([HttpGet])操作中填充,控制器将其传递给视图。部分视图是 $(document).ready(function () { var viewModel = new ProductFormViewModel(@Html.Raw(Json.Encode(Model))); }
标签: jquery datatables