jquery - 执行搜索时如何获取 jqGrid 搜索列类型?

标签 jquery jqgrid jqgrid-asp.net

我在 ASP.net 上使用 jqGrid 3.8.2,并且声明一个非常简单的 jqGrid 配置。 数据显示正确,我可以通过搜索对话框按多个条件进行搜索...没问题。

问题是,在我搜索不是字符串的值的情况下,我现在需要该列上的数据类型。 尽管我在列上有一个“stype”选项来准确说明我所期望的类型,但当我执行搜索时,此配置不会在请求查询字符串上传递。

我在 2 个搜索条件请求中收到的 json 是这样的: {"groupOp":"AND","rules":[{"field":"EntityID","op":"gt","data":"3"},{"field":"EntityID","op":"lt","data":"8"}]}

请注意,“数据”值始终用引号引起来,但该值是数字,并且该列的 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 });

最佳答案

如何阅读the documentation stype 仅支持两个值:“text”和“select”。 stype 将仅用于在搜索对话框中构建不同的控件。

将发送到服务器的所有“数据”元素始终编码为字符串,并且服务器必须将数据转换为相应的数据类型。例如,如果您使用列作为日期或整数,服务器负责将数据转换为 DateTimeInt32Int64 Double 或其他类型。

关于jquery - 执行搜索时如何获取 jqGrid 搜索列类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4879948/

相关文章:

javascript - 当我将鼠标悬停在 parent 身上时,如何切换 child ?

jquery - 谷歌翻译小部件移动溢出

javascript - 有没有更好的方法来实现这个CSS动画而不需要Javascript?

javascript - 如何从 AngularJS 指令中获取和设置元素高度

javascript - 如何在免费jqgrid中编辑表单后设置行id值

java - JQGrid 标题不会动态更改

ajax - 在同一页面上加载多个 jqgrid

jquery - jqGrid 使用 jQuery 获取 "th"和 "thead"

jqgrid-asp.net - JQGrid 中的服务器端分页

javascript - 从一个 ColModel 获取值,执行数学运算并将值应用到其他 ColModel