jqGrid 트리 노드는 json 데이터를 사용하여 서버에서 읽습니다. 노드를 클릭하면 서버에서 자식 노드를 읽습니다. 아래 코드는 페이지가로드 될 때 열린 트리 노드를 복원하는 데 사용됩니다. 단일 노드 만 항상 트리로 열립니다. 컨트롤러는 노드 id를 autoClicked 배열에 할당하고 gridComplete는이 경로를 사용하여 노드를 엽니 다. 이로 인해 여러 서버 요청 buid 그리드가 여러 번 발생하므로 페이지로드시 그리드가 flasing됩니다. 그리드 깜박임을 비활성화하는 방법은 무엇입니까? 여러 jqGrid 빌드를 방지하고 find jqGrid 트리 만 표시 할 수 있습니까?지속되는 원격으로 채워진 jqgrid 트리 노드에서 깜박임을 제거하는 방법
대답에서 Send expanded TreeGrid Nodes in cookie 은 채워진 그리드 전용으로 작동합니다.
var autoClicked=[<%= Model.Path() %>];
$(function() {
var grid = $("#tree-grid");
grid.jqGrid({
gridComplete: function() {
setTimeout(function() {
var id = autoClicked.shift();
var rData = grid.getGridParam('data');
var data = null;
for (var i = 0; i < rData.length; i++) {
if (id == rData[i].id) {
data = rData[i];
break;
}
}
if (data == null)
return;
grid.expandRow(data);
grid.expandNode(data);
}, 0);
},
url: '<%= ResolveUrl("~/Store/GridData")%>',
datatype: "json",
mtype: "POST",
height: "auto",
loadui: "disable",
treeGridModel: "adjacency",
colModel: [
{ name: "id", width: 1, hidden: true, key: true },
{ name: "menu", classes: "handcursor" },
{ name: "url", width: 1, hidden: true }
],
autowidth: true,
treeGrid: true,
ExpandColumn: "menu",
rowNum: 200,
ExpandColClick: true,
onSelectRow: function (rowid) {
var treedata = grid.jqGrid('getRowData', rowid);
window.location = treedata.url;
}
}
);
});
컨트롤러 : 당신의 장소에
public string Path()
{
Artomlii node = Artomliik;
string res = node.Artomaliik.ToString();
while (!Core.IsNullOrWhiteSpace(node.Treeparent))
{
// retrieve parent node
node = MyDataContext.ExecQuery<Artomlii>(@"select * from artomlii where treeorder={0}", node.Treeparent).FirstOrDefault();
if (node == null)
break;
res = node.Artomaliik.ToString() + "," + res;
}
return res;
}
대단히 감사합니다. 이것은 좋은 생각입니다. – Andrus
@Andrus : 천만에요! – Oleg