如何动态加载行列表值

时间:2013-08-27 11:34:27

标签: asp.net-mvc-4 jqgrid

我在MVC 4 jqgrid中创建应用程序,我想根据数据大小或用户选项设置rowlist(设置web.config键中的值,值)。我试图使用函数传递值但我得到了像这样的下拉值。请帮助我。

Method;
          function setRowList() {
                var rownum = "[5,10]";
                return rownum;
            }
        MY grid:
                $("#ApplicationDetailsTable").jqGrid({
                    url: '@Url.Action("AppListDetails", "JQGridHome")',
                    datatype: 'json',

                    colNames: ["no1", "name", "phone"],
                    colModel: [
                        { name: "no1", index: "no1", width: 40, align: "left", stype: 'select', searchoptions: { sopt: ['eq'], value: categoriesStr } },
                        { name: "name", index: "name", width: 100, align: "left" },
                        { name: "phone", index: "phone", width: 200, align: "left" }
                    ],
                    width: 550,
                    loadonce: true,
                    height: 200,
                    toppager: false,
                pager: $("#JQGridPaging"),
                    rowNum:4,
                rowList: setRowList(),
                    viewrecords: true,
                    caption: "A Basic jqGrid - Read Only",

图片

enter image description here

3 个答案:

答案 0 :(得分:2)

在创建jqGrid期间,选项rowList将仅使用一次。因此动态更改需要替换您在寻呼机内部找到的<option>的所有<select class="ui-pg-selbox">元素(如果您同时使用toppager,则需要替换寻呼机pager)。如果您更改列表中所选选项的值,并且您希望jqGrid刷新内容,则应在change中触发<select class="ui-pg-selbox">事件。

The demo演示了上述方法。网格将使用rowList: [5, 10, 20]创建,然后会更改为rowList: [2, 3, 10, 100],选项3将标记为selected

$("#pager").find(".ui-pg-selbox")
    .html('<option role="option" value="2">2</option>' +
          '<option role="option" selected="selected" value="3">3</option>' +
          '<option role="option" value="10">10</option>' +
          '<option role="option" value="100">100</option>')
    .trigger("change");

很明显,可以动态构建<option>列表。我只想清楚地表明应该做些什么。

答案 1 :(得分:1)

您将rownum声明为字符串而不是数组

测试更改该行:

 var rownum = [5,10]; // Quotes ripped out.

所以,当jQuery函数显示rownum时,它是迭代字符串,其特征就像一个数组但每个字符被视为数组元素

答案 2 :(得分:0)

您可以直接将其设置为rowList:[5,10],它不需要字符串,而是数组作为要分配的值。您可以查看示例here