gpt4 book ai didi

c# - 如何删除持续远程填充的 jqgrid 树节点上的闪烁

转载 作者:行者123 更新时间:2023-11-30 18:32:24 26 4
gpt4 key购买 nike

jqGrid 树节点使用 json 数据从服务器读取。单击节点从服务器读取子节点。如果加载页面,下面的代码用于恢复打开的树节点。树中始终只打开单个节点。 Controller 将节点 ID 分配给 autoClicked 数组,gridComplete 使用此路径打开节点。这会导致页面加载时出现网格闪烁,因为多个服务器多次请求构建网格。如何禁用网格闪烁?是否可以防止多个 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;
}
}
);
});

Controller :

    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;
}

最佳答案

在你的位置,我会用另一种方式解决问题。

我会在 postData 中发送到服务器一个附加参数,其中包含应扩展的节点列表。

在这种情况下,服务器将在响应中放置所有请求的节点。 “扩展”隐藏列的值可以设置为 true直接在服务器响应中或在客户端的 beforeProcessing 中以我在 the answer 中描述的方式回调你引用的。

以这种方式,您将获得与您需要的完全相同的结果。由于消除了不必要的往返,网格的填充将更快。由于使用 gridview: true,树形网格中的所有行将“立即”填充,因此将删除闪烁。这是当前 jqGrid 实现中 Tree Grids 的默认值。

关于c# - 如何删除持续远程填充的 jqgrid 树节点上的闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9242601/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com