Узлы дерева jqGrid считываются с сервера с использованием данных json. Щелчок в узле считывает дочерние узлы с сервера. Код ниже используется для восстановления открытого узла дерева, если страница загружена. Только один узел открывается всегда в дереве. Идентификаторы узлов контроллера для автоматического набора и gridComplete открывает узлы, используя этот путь. Это приводит к сглаживанию сетки при загрузке страницы, поскольку несколько запросов на сервер несколько раз повторяют сетку. Как отключить мигание сетки? Можно ли предотвратить множественное построение jqGrid и показать только дерево 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