jqgrid 主键列的设定

本文介绍了jqGrid中主键列的重要性及设置方法。主键用于数据交互时的标识,确保了编辑、新增和删除操作的准确性。文章强调了只应设置一个主键列,并提供了具体的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、如果需要对jqgrid表格数据有互动操作,需要设定主键列。

2、主键列的作用为:在进行jqgrid表格数据交互(编辑、新增、删除行)时,是通过主键列的值来作为引导值来的。

3、注意:不要给一个jqgrid指定多个主键列。

4、主键列指定方式,指定colModel属性值中的某个label属性:key: true

 colModel: [
            { label: 'ID', name: 'Id', width: 20, hidden: true },//id值隐藏
            { label: 'TbReportId', name: 'TbReportId', width: 20, hidden: true },//TbReportId值隐藏
            { label: '字段编码', name: 'FieldCode', width: 150, editable: false },
            {//参数名作为主键
                 label: '参数名',
                 name: 'FieldParam',
                 width: 150,
                 key: true,
                 editable: true,
                 edittype: "text"
                 //editrules: { required: true }
             }]
View Code

小提示:如果指定了多个列为主键列,则会出现鼠标无法选择jqgrid行的情况。(问题比较坑,不太容易发现,切记)

转载于:https://www.cnblogs.com/senyier/p/7307952.html

jqGrid 中实现新增列并启用列排序功能,可以通过以下步骤来完成。 ### 添加新列 首先,在 `colModel` 中添加新列的定义。确保为新列指定 `name`、`index` 和 `sortable` 属性。如果希望该列默认支持排序,可以将 `sortable` 设置为 `true`,或者根据需求设置为其他值(例如 `"default"` 或 `"custom"`)。 ### 启用排序功能 jqGrid 的列排序功能默认是启用的,但需要确保在初始化表格时设置了 `sortable: true`。如果希望某些列不支持排序,可以通过 `colModel` 中的 `sortable: false` 来禁用。 ### 示例代码 以下是一个完整的示例代码,展示如何在 jqGrid 中添加新列并启用列排序功能: ```javascript $("#grid_id").jqGrid({ url: 'your_data_source.php', // 数据源 datatype: "json", colModel: [ { label: 'ID', name: 'id', index: 'id', width: 50, key: true }, { label: 'Name', name: 'name', index: 'name', width: 150, sortable: true }, { label: 'Age', name: 'age', index: 'age', width: 100, sortable: true }, // 新增列 { label: 'Email', name: 'email', index: 'email', width: 200, sortable: true } ], rowNum: 10, rowList: [10, 20, 30], pager: '#pager_id', sortname: 'id', // 默认排序的列 viewrecords: true, sortorder: "desc", // 默认排序方式 caption: "User Data", jsonReader: { root: "rows", page: "page", total: "total", records: "records", repeatitems: false, id: "id" }, height: 'auto', autowidth: true, sortable: true // 启用列排序功能 }); ``` ### 动态添加列并启用排序 如果需要在运行时动态添加新列并启用排序功能,可以通过以下方式实现: ```javascript // 定义新列的模型 var newColumn = { label: 'New Column', name: 'new_column', index: 'new_column', width: 150, sortable: true }; // 添加新列到表格 $("#grid_id").jqGrid('addCol', newColumn); // 刷新表格以应用新列 $("#grid_id").trigger('reloadGrid'); ``` ### 注意事项 1. **列索引(index)**:确保新列的 `index` 与数据源中的字段名一致。 2. **排序功能**:如果需要禁用某些列的排序功能,可以在 `colModel` 中将 `sortable` 设置为 `false`。 3. **动态添加列**:使用 `addCol` 方法时,需确保传入的列模型包含所有必要的属性。 ### 列菜单支持 如果希望启用列菜单(如排序、显示/隐藏列等功能),可以在初始化表格时设置 `colMenu: true`: ```javascript $("#grid_id").jqGrid({ // 其他配置 colMenu: true // 启用列菜单 }); ``` 通过以上步骤,可以在 jqGrid 中成功添加新列并启用列排序功能。如果需要进一步自定义排序行为(例如自定义排序函数),可以通过 `sorttype` 属性进行设置。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值