如何删除持久化远程填充的jqgrid树节点上的闪烁
使用json数据从服务器读取jqGrid树节点。 单击节点从服务器读取子节点。 如果加载页面,下面的代码用于恢复打开的树节点。 始终只在树中打开单个节点。 Controller将节点ID分配给autoClicked数组,gridComplete使用此路径打开节点。 由于多个服务器多次请求建立网格,这会导致网页加载页面加载。 如何禁用网格闪烁? 是否可以防止多个jqGrid构建并显示只找到jqGrid树?
在Cookie中发送扩展的TreeGrid节点中的答案仅适用于完全填充的网格。
var autoClicked=[]; $(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: '', 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(@"select * from artomlii where treeorder={0}", node.Treeparent).FirstOrDefault(); if (node == null) break; res = node.Artomaliik.ToString() + "," + res; } return res; }
在你的位置,我会以另一种方式解决问题。
我将在postData
向服务器发送一个附加参数,其中包含应扩展的节点列表。
在这种情况下,服务器将所有请求的节点放在响应中。 “扩展”隐藏列的值可以直接在服务器响应中设置为true
也可以在beforeProcessing
回调中的客户端设置为true
,这与我在您引用的答案中描述的方式相同。
这样你就可以获得完全相同的结果。 由于消除了不必要的往返行程,电网的填充将更快。 闪存将被删除,因为树形网格中的所有行都将“立即”填充,因为使用了gridview: true
,这是当前jqGrid实现中Tree Grids的默认值。
上述就是C#学习教程:如何删除持久化远程填充的jqgrid树节点上的闪烁分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1034217.html