这昨天工作没有问题。然而,自从今天早上离开并返回工作站后,我无法识别代码中有任何明显的变化。
我有一个ASP.NET MVC 5控制器方法,它返回一个JsonAction对象,不接受任何参数(HttpGet)。我已经测试了它的返回,它返回了正确的JSON——与昨天没有这个问题时的结构相同。这似乎排除了服务器端的任何可能性。
对dataBind的调用使用的URL如下所示:
/主页/GetAllUsersJSON?pk=用户ID&_=1413996086894
原因似乎是,通过在Chrome中检查,igGrid的客户端API似乎在dataBind()期间将查询字符串附加(或试图附加)到dataSourceURL的末尾。我甚至无法在任何相关的数据库表中识别第二个参数的值(它也是匿名的,似乎只是一个下划线字符)(换句话说,我不知道这个值来自哪里)——然而,在每次调试尝试中,它都保持不变。
我只使用客户端(JS)来渲染和操作igGrid。这是代码:
$(document).ready(function () {
$('#usersgrid').igGrid({
autoGenerateColumns: false,
columns: [
{ headerText: 'userid', key: 'userid', dataType: 'number' },
{ headerText: 'username', key: 'username', dataType: 'string' },
{ headerText: 'login', key: 'loginid', dataType: 'string' },
{ headerText: 'role', key: 'role', dataType: 'string' },
{ headerText: 'distributor', key: 'distributorid', dataType: 'number' },
{ headerText: 'inactive', key: 'inactive', dataType: 'boolean' },
{ headerText: 'lastupdated', key: 'lastupdated', dataType: 'date', format: 'dateTime' }
],
dataSourceUrl: '/Home/GetAllUsersJSON',
primaryKey: 'userid',
features: [{
name: 'Updating',
enableAddRow: true,
enableDeleteRow: true,
columnSettings: [{
columnKey: 'userid',
editorOptions: { readonly: true, disabled: true }
}, {
columnKey: 'username',
editorType: 'string',
validation: true,
editorOptions: { required: true }
}, {
columnKey: 'loginid',
editorOptions: { readonly: true, disabled: true }
}, {
columnKey: 'role',
editorType: 'string',
validation: true,
editorOptions: { required: true }
}, {
columnKey: 'distributorid',
editorType: 'numeric',
validation: true,
editorOptions: { button: 'spin', minValue: 0, maxValue: 2000000, required: true }
}, {
columnKey: 'inactive',
editorType: 'combo',
editorOptions: {
mode: 'dropdown',
required: true,
dataSource: trueFalseValues,
textKey: 'text',
valueKey: 'value'
}
}, {
columnKey: 'lastupdated',
editorOptions: { readonly: true, disabled: true }
}]
} ]
}).igGrid('dataBind');
});
使用dataSource
选项而不是dataSourceUrl
。dataSourceUrl
适用于MVC中的按需加载场景,不用于初始数据绑定。您可以传递一个远程url作为dataSource
选项值。您看到的参数是主键字段的名称和jsonp请求完成时要执行的回调。