我在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",
图片
答案 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。