我编写了一个工作正常的JQGrid,但我需要根据选定的主网格行填充子网格。如何将所选行单元格值传递到子网格的URL中。
主网格中的列---- Id,Firstname,Lastname,Gender。
我需要选择" Id"值。
这是我的剧本
$(document).ready(function () { jQuery("#EmpTable").jqGrid({ datatype: 'json', url: "Default1.aspx?x=getGridData", mtype: 'POST', ajaxGridOptions: { contentType: 'application/json; charset=utf-8' }, serializeGridData: function (postData) { return JSON.stringify(postData); }, jsonReader: { repeatitems: false, root: "rows", page: "page", total: "total", records: "records" }, colNames: ['PID', 'First Name', 'Last Name', 'Gender'], colModel: [ { name: 'PID', width: 60, align: "center", hidden: true, searchtype: "integer", editable: true }, { name: 'FirstName', width: 180, sortable: true, hidden: false, editable: true, sorttype: 'string', searchoptions: { sopt: ['eq', 'bw']} }, { name: 'LastName', width: 180, sortable: false, hidden: false, editable: true }, { name: 'Gender', width: 180, sortable: false, hidden: false, editable: true, cellEdit: true, edittype: "select", formater: 'select', editrules: { required: true, edithidden: true }, editoptions: { value: getAllSelectOptions()}}], loadonce: true, pager: jQuery('#EmpPager'), rowNum: 5, rowList: [5, 10, 20, 50], viewrecords: true, sortname: 'PID', sortorder: "asc", height: "100%", editurl: 'Default1.aspx?x=EditRow', subGrid: true, // subGridUrl: 'Default1.aspx?x=bindsubgrid', subGridRowExpanded: function (subgrid_id, row_id) { // var celValue = jQuery('#EmpTable').jqGrid('getCell', rowId, 'PID'); var subgrid_table_id, pager_id; subgrid_table_id = subgrid_id + "_t"; pager_id = "p_" + subgrid_table_id; $("#" + subgrid_id).html(""); jQuery("#" + subgrid_table_id).jqGrid({ url: "Default1.aspx?x=bindsubgrid&PID=" + row_id + "", datatype: "json", mtype: 'POST', ajaxGridOptions: { contentType: 'application/json; charset=utf-8' }, serializeGridData: function (postData) { return JSON.stringify(postData); }, jsonReader: { repeatitems: false, root: "rows", page: "page", total: "total", records: "records" }, colNames: ['PID', 'First Name', 'Last Name', 'Gender'], colModel: [ { name: 'PID', width: 60, align: "center", hidden: true, searchtype: "integer", editable: true }, { name: 'FirstName', width: 180, sortable: true, hidden: false, editable: true, sorttype: 'string', searchoptions: { sopt: ['eq', 'bw']} }, { name: 'LastName', width: 180, sortable: false, hidden: false, editable: true }, { name: 'Gender', width: 180, sortable: false, hidden: false, editable: true, cellEdit: true, edittype: "select", formater: 'select', editrules: { required: true, edithidden: true }, editoptions: { value: getAllSelectOptions()}}], loadonce: true, rowNum: 5, rowList: [5, 10, 20, 50], pager: pager_id, sortname: 'PID', sortorder: "asc", height: '100%' }); jQuery("#" + subgrid_table_id).jqGrid('navGrid', "#" + pager_id, { edit: false, add: false, del: false }) } })
请帮助查找单元格值。
由于 普尔纳
答案 0 :(得分:3)
如果'PID'
列包含可用作rowid的唯一值,则应在{key: true
列的定义中添加'PID'
1}}。 jqGrid会将colModel
元素的id
属性(网格行)分配给<tr>
列中的值。之后'PID'
row_id
参数将包含您需要的值,您无需再进行subGridRowExpanded
次呼叫。
补充说明:我严格建议您对子网格使用getCell
参数,也可能对网格使用idPrefix
参数。在jqGrid将使用具有指定前缀的id
属性的值的情况下。如果允许解决冲突(HTML页面中的id重复)。目前,您可以为子网格行和主网格的行具有相同的rowid。请参阅here更多关于此主题的旧答案。