jqgrid 动态设置筛选列 下拉框的值 详细代码及注释
时间: 2023-12-17 13:05:57 浏览: 78
好的,以下是基于 jqGrid 4.15.5 版本的动态设置筛选列下拉框值的示例代码及注释:
```javascript
// 定义 jqGrid 表格
$("#grid").jqGrid({
url: "data.json", // 数据源 URL
datatype: "json", // 数据类型
colModel: [
{name: "id", label: "ID", width: 50},
{name: "name", label: "姓名", width: 100},
{name: "gender", label: "性别", width: 80, stype: "select", searchoptions: {value: ":All;男:男;女:女"}}, // "stype" 表示该列的筛选类型,"searchoptions" 表示该列的筛选选项
{name: "age", label: "年龄", width: 80, stype: "integer", searchoptions: {sopt: ["eq", "ne", "lt", "le", "gt", "ge"]}}, // "sopt" 表示该列的筛选操作符
{name: "email", label: "邮箱", width: 150},
{name: "address", label: "地址", width: 300}
],
rowNum: 10, // 每页行数
rowList: [10, 20, 30], // 每页行数选项
pager: "#pager", // 分页控件 ID
sortname: "id", // 默认排序列名
sortorder: "asc", // 默认排序方式
viewrecords: true, // 是否显示总记录数
caption: "示例表格" // 表格标题
});
// 动态设置 "gender" 列的筛选选项
$("#grid").setColProp("gender", {
searchoptions: {
dataUrl: "gender.json", // 筛选选项数据源 URL
buildSelect: function (data) { // 重写 "buildSelect" 方法,解析数据并返回下拉框 HTML
var html = '<select>';
html += '<option value="">All</option>'; // 添加一个 "All" 选项
$.each(data, function (i, item) {
html += '<option value="' + item.id + '">' + item.name + '</option>';
});
html += '</select>';
return html;
}
}
});
```
注释中已经说明了每一部分的作用,简单总结一下:
1. 定义 jqGrid 表格,其中 "gender" 列的 "stype" 设置为 "select",表示该列的筛选类型为下拉框,"searchoptions" 设置了该列的筛选选项,包括下拉框的选项值。
2. 动态设置 "gender" 列的筛选选项,其中 "dataUrl" 表示筛选选项的数据源,"buildSelect" 方法用于解析数据并生成下拉框 HTML。
希望这个示例能够帮到你,如果还有不清楚的地方,可以继续提问哦!
阅读全文