是否可以让JQGrid Tree使用OnSelectRow展开节点
Is it possible to let JQGrid Tree use OnSelectRow to expand nodes
目前这个jq树网格可以通过点击树形图标展开节点。是否可以通过使用onSelectRow来增强能够扩展节点的网格?
感谢任何帮助。
$("#Grid1").jqGrid({
datatype: "jsonstring",
height: "auto",
loadui: "disable",
colNames: ['Category', 'ID', 'Name'],
colModel: [
{
name: 'Category', index: 'Category', width: 450, sortable: false
},
{
name: 'ID', index: 'ID', width: 200, align: "center", sortable: false
},
{ name: 'Name', index: 'Name', width: 200, align: "center", sortable: false },
],
jsonReader: {
repeatitems: false,
root: "root"
},
rowattr: function (rd) {
if (rd.parent === null) {
return { "class": "myParentClass" };
}
},
treeIcons: { leaf: 'ui-icon-blank' },
treeGrid: true,
treeGridModel: "adjacency",
ExpandColumn: "Period",
viewrecords: true,
loadonce: false,
search: false,
multiSort: false,
loadComplete: function () {
$("#Grid1 .ui-jqgrid .ui-widget-header").addClass('myheaderclass');
$("#Grid1 tr.jqgrow:odd").addClass('myOddAltRowClass');
$("#Grid1 tr.jqgrow:even").addClass('myAltRowClass');
}
});
$("#Grid1").jqGrid('setGridParam', { datastr: totalValue });
$("#Grid1").trigger('reloadGrid');
});
这是可能的,但代码是在 Guriddo jqGrid 中测试的,我不知道这是否适用于您使用的 free-jqgrid。你可以试试看。
确保选项 ExpandColClick 设置为 false。
使用以下代码:
onSelectRow : function( rowid ) {
if(rowid)
{
var ind =$.jgrid.stripPref(this.p.idPrefix,rowid),
pos = this.p._index[ind],
isLeaf = this.p.treeReader.leaf_field,
expanded = this.p.treeReader.expanded_field;
if(!this.p.data[pos][isLeaf]){
if(this.p.data[pos][expanded]){
$(this).jqGrid("collapseRow",this.p.data[pos]);
$(this).jqGrid("collapseNode",this.p.data[pos]);
} else {
$(this).jqGrid("expandRow",this.p.data[pos]);
$(this).jqGrid("expandNode",this.p.data[pos]);
}
}
}
},
尽情享受
目前这个jq树网格可以通过点击树形图标展开节点。是否可以通过使用onSelectRow来增强能够扩展节点的网格?
感谢任何帮助。
$("#Grid1").jqGrid({
datatype: "jsonstring",
height: "auto",
loadui: "disable",
colNames: ['Category', 'ID', 'Name'],
colModel: [
{
name: 'Category', index: 'Category', width: 450, sortable: false
},
{
name: 'ID', index: 'ID', width: 200, align: "center", sortable: false
},
{ name: 'Name', index: 'Name', width: 200, align: "center", sortable: false },
],
jsonReader: {
repeatitems: false,
root: "root"
},
rowattr: function (rd) {
if (rd.parent === null) {
return { "class": "myParentClass" };
}
},
treeIcons: { leaf: 'ui-icon-blank' },
treeGrid: true,
treeGridModel: "adjacency",
ExpandColumn: "Period",
viewrecords: true,
loadonce: false,
search: false,
multiSort: false,
loadComplete: function () {
$("#Grid1 .ui-jqgrid .ui-widget-header").addClass('myheaderclass');
$("#Grid1 tr.jqgrow:odd").addClass('myOddAltRowClass');
$("#Grid1 tr.jqgrow:even").addClass('myAltRowClass');
}
});
$("#Grid1").jqGrid('setGridParam', { datastr: totalValue });
$("#Grid1").trigger('reloadGrid');
});
这是可能的,但代码是在 Guriddo jqGrid 中测试的,我不知道这是否适用于您使用的 free-jqgrid。你可以试试看。
确保选项 ExpandColClick 设置为 false。
使用以下代码:
onSelectRow : function( rowid ) { if(rowid) { var ind =$.jgrid.stripPref(this.p.idPrefix,rowid), pos = this.p._index[ind], isLeaf = this.p.treeReader.leaf_field, expanded = this.p.treeReader.expanded_field; if(!this.p.data[pos][isLeaf]){ if(this.p.data[pos][expanded]){ $(this).jqGrid("collapseRow",this.p.data[pos]); $(this).jqGrid("collapseNode",this.p.data[pos]); } else { $(this).jqGrid("expandRow",this.p.data[pos]); $(this).jqGrid("expandNode",this.p.data[pos]); } } } },
尽情享受