我在ASP.net上使用jqGrid 3.8.2并且我声明了一个非常简单的jqGrid配置。 数据显示正确,我可以通过搜索对话框搜索多个条件......没问题。
问题是,在我正在搜索不是字符串的值的情况下,我现在需要该列上的数据类型。 虽然我在列上有一个'stype'选项来准确说出我期望的类型,但是当我执行搜索时,这个配置不会在请求查询字符串上传递。
json我正在接受2个搜索条件的请求是这样的: { “groupOp”: “AND”, “规则”:[{ “字段”: “ENTITYID”, “运算”: “GT”, “数据”: “3”},{ “字段”: “ENTITYID”,”运算 “:” LT”, “数据”: “8”}]}
请注意,'data'值始终用引号括起来,但值是numeric,而且该列的stype设置为'int'(我找不到任何关于如何使用它的内容)
底线是我在执行请求时无法传递有关列类型的信息。
怎么做?
这是我的网格声明:
$('#EntityListGrid').jqGrid({
url: 'my url',
datatype: 'json',
mtype: 'GET',
colNames: ['ID', 'Name', 'Actions'],
colModel: [
{ name: 'EntityID', index: 'EntityID', width: 50, align: 'left', resizable: true, sortable: true, stype: 'int' },
{ name: 'Name', index: 'Name', width: 250, align: 'left', resizable: true, sortable: true, stype: 'string' },
{ name: 'act', index: 'act', width: 75, sortable: false },
],
pager: $('#EntityListGridPager'),
rowNum: 10,
rowList: [10, 20, 30],
sortname: 'EntityID',
sortorder: 'desc',
viewrecords: true,
imgpath: '',
caption: 'Entities',
width: EntityListGridWidth,
height: 400,
gridComplete: function () {
var ids = jQuery("#EntityListGrid").jqGrid('getDataIDs');
var editImageUrl = 'edititem.GIF';
for (var i = 0; i < ids.length; i++) {
var cl = ids[i];
ce = "<img src='" + editImageUrl + "' onclick='EditEntity(" + cl + "); return false;' />";
ce2 = "<input type='button' value='details' src='" + editImageUrl + "' onclick='EditEntity(" + cl + "); return false;' />";
//jQuery("#EntityListGrid").jqGrid('setRowData', ids[i], { act: ce2 });
$("#EntityListGrid").setRowData(ids[i], { act: ce2 });
}
}
//});
}).navGrid('#EntityListGridPager', { search: true, edit: false, add: false, del: false, searchtext: "Search" }, {}, {}, {}, { closeOnEscape: true, multipleSearch: true, closeAfterSearch: true });
答案 0 :(得分:3)
如何阅读the documentation stype
仅支持两个值:“text”和“select”。 stype
仅用于在搜索对话框中构建不同的控件。
将发送到服务器的所有“数据”元素始终编码为字符串,服务器必须将数据转换为相应的数据类型。例如,如果您使用列作为日期或整数,则服务器负责将数据转换为DateTime
,Int32
,Int64
,Double
或其他类型。