Jqgrid 树视图邻接

2023-12-09

我在 ma 应用程序中使用 Jqgrid 树视图模型,我可以看到它显示错误,因为不支持对象或属性,我已包含 grid.Treeview.js 和其他 Jqgrid 脚本文件。我不知道可能是什么问题。 当我在net中检查邻接树视图的示例应用程序时,我尝试了同样的操作,但在asp.net中使用了我没有得到的本地数据。任何人都可以帮助我如何做同样的事情。 提前致谢

这是我使用的示例代码,而且我不知道它是否有效。

var myTreeGrid = new Ext.us.tree.TreeGrid({
    columns: columnsConfig,
    rootVisible: false,
    root: rootNode,
    loader: new Ext.ux.tree.TreeGridLoader({preloadChildren: true})
});
var rootNode = $('#treegridsamp').jqgrid({
    treeGrid: true,
    treeGridModel: 'adjacecncy',
    ExpandColumn: 'name',
    datatype: "local",
    mtype: 'Get',
    colNames: ['id','Name','MenuId','Menu Name'],
    colModel: [
        {name:'RowId',index:'RowId',width:300,fixed:true},
        {name:'Name',index:'Name',width:300,fixed:true},
        {name:'MenuId',index:'MenuId',width:300,fixed:true},
        {name:'MenuName',index:'MenuName',width:300,fixed:true},
    ],
    root:[
        {id:"1",Name:"Main Menu", MenuId:"1",MenuName:"Menu1"},
        {id:"2",Name:"Main Menu1",MenuId:"2",MenuName:"Menu2"},
        {id:"3",Name:"Main Menu2",MenuId:"3",MenuName:"Menu3"}
    ],
    pager: '#dvtreegridsamp',
    Caption: 'Sample Tree View Model'
})
$("#treegridsamp").jqGrid('navGrid', '#dvtreegridsamp',
    { edit: false, add: false, del: false, search: false, refresh: false });
var mydata=[
    {id:"1",    Name:"Main Menu",   MenuId:"1",MenuName:"Menu1"},
    {id:"2",    Name:"Main Menu1",  MenuId:"2",MenuName:"Menu2"},
    {id:"3",    Name:"Main Menu2",  MenuId:"3",MenuName:"Menu3"},
    {id:"1.1",  Name:"Sub Menu",    MenuId:"1",MenuName:"Menu1"},
    {id:"1.2",  Name:"Sub Menu1",   MenuId:"1",MenuName:"Menu1"},
    {id:"1.1.1",Name:"Sub Sub Menu",MenuId:"1",MenuName:"Menu1"},
    {id:"2.1",  Name:"Main Menu",   MenuId:"2",MenuName:"Menu2"},
    {id:"2.2",  Name:"Main Menu",   MenuId:"2",MenuName:"Menu2"},
    {id:"3.1",  Name:"Main Menu",   MenuId:"3",MenuName:"Menu3"},
    {id:"3.2",  Name:"Main Menu",   MenuId:"3",MenuName:"Menu3"},
];
for(var i=0;i<mydata.length;i++) {
    $("#treegridsamp").jqGrid('addRowData',i+1,mydata[i]);
}

您编写了一些简单的小错误,但您遇到的主要问题是您的代码是为了添加简单的行而不是树节点。你可以继续官方演示页面并在“New in version 3.4”下选择演示“Tree Grid Adjacency model”。

I wrote the demo其工作原理与 trirand 演示页面中的演示完全相同,但是仅使用本地数据:

enter image description here

在你的情况下,你必须从以下位置扩展对象mydata与属性level, parent, isLeaf, expanded:

var mydata = [
    {id:"1",Name:"Main Menu",MenuId:"1",MenuName:"Menu1",
     level:"0", parent:"", isLeaf:false, expanded:false},
    {id:"1_1",Name:"Sub Menu",MenuId:"1",MenuName:"Menu1",
     level:"1", parent:"1", isLeaf:false, expanded:false},
    {id:"1_1_1",Name:"Sub Sub Menu",MenuId:"1",MenuName:"Menu1",
     level:"2", parent:"1_1", isLeaf:true, expanded:false},
    {id:"1_2",Name:"Sub Menu1",MenuId:"1",MenuName:"Menu1",
     level:"1", parent:"1", isLeaf:true, expanded:false},
    {id:"2",Name:"Main Menu1",MenuId:"2",MenuName:"Menu2",
     level:"0", parent:"", isLeaf:false, expanded:true},
    {id:"2_1",Name:"Main Menu",MenuId:"2",MenuName:"Menu2",
     level:"1", parent:"2", isLeaf:true, expanded:false},
    {id:"2_2",Name:"Main Menu",MenuId:"2",MenuName:"Menu2",
     level:"1", parent:"2", isLeaf:true, expanded:false},
    {id:"3",Name:"Main Menu2",MenuId:"3",MenuName:"Menu3",
     level:"0", parent:"", isLeaf:false, expanded:false},
    {id:"3_1",Name:"Main Menu",MenuId:"3",MenuName:"Menu3",
     level:"1", parent:"3", isLeaf:true, expanded:false},
    {id:"3_2",Name:"Main Menu",MenuId:"3",MenuName:"Menu3",
     level:"1", parent:"3", isLeaf:true, expanded:false}
];

这里我修改了一些 id 值,因为 ids 中不应该使用点。另外我设置了expanded“主菜单1”的状态true仅演示您可以在加载后立即自动展开某些节点。

我将 jqGrid 定义修改为以下内容

$("#treegridsamp").jqGrid({
    datatype: "local",
    data: mydata, // will not used at the loading,
                  // but during expanding/collapsing the nodes
    colNames:['id','Name','MenuId','Menu Name'],
    colModel:[
        {name:'id',index:'id',width:100,hidden:true},
        {name:'Name',index:'Name',width:150},
        {name:'MenuId',index:'MenuId',width:100},
        {name:'MenuName',index:'MenuName',width:100}
    ],
    height:'auto',
    //pager : "#ptreegrid",
    sortname: 'id',
    treeGrid: true,
    treeGridModel: 'adjacency',
    treedatatype: "local",
    ExpandColumn: 'Name',
    caption: "Sample Tree View Model"
});

我隐藏了“id”列并减小了网格大小。添加我使用的数据addJSONData方法,因为它将设置树节点

$("#treegridsamp")[0].addJSONData({
    total: 1,
    page: 1,
    records: mydata.length,
    rows: mydata
});

结果你会收到

enter image description here

您可以现场观看演示here.

UPDATED:如果您使用 jqGrid 版本 4.0 或更高版本,设置很重要loaded:true如果需要,树节点的属性已扩展。例如,在上面的示例中,“Main Menu1”项是一个节点 (isLeaf:false)应扩展显示(expanded:true),所以应该添加loaded:true对于项目定义:

{id:"2", Name:"Main Menu1", MenuId:"2", MenuName:"Menu2",
 level:"0", parent:"", isLeaf:false, expanded:true, loaded:true}

更多示例请参见here, here, here and here.

更新2:要正确进行排序工作,必须使用parent:null or parent:"null"代替parent:"" see here更多细节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jqgrid 树视图邻接 的相关文章

  • 如何更新jqgrid中的数据值

    我试图在加载时永久更新 jqgrid 中的单元格 我知道我可以使用setCell但这只会更新该页面的值 如果我回到该页面 如果我没有明确执行另一个setCell对于单元格 显示旧值 我也尝试过 setRowData 但它似乎在做同样的事情
  • jqgrid:拖放多行

    如何使用 jqgrid 拖放多行 即我可以拖动多于一行吗 我怎么知道这在 jqGrid 中是不可能的 jQuery UI 的可排序功能是否支持它 请参阅http jqueryui com demos sortable http jquery
  • 当 jqgrid 中验证失败时突出显示错误单元格或输入

    我正在使用 jqgrid 内联编辑 并使用编辑规则在网格中进行验证 我想添加类来突出显示验证失败的输入的错误 例如 ui state error 我可以使用这个设置类来突出显示错误 jQuery grid id jqGrid setCell
  • jqGrid - 防止取消选择行

    使用 jqGrid 如果我再次单击所选行 则该行将被取消选择 有什么办法可以防止这种情况发生吗 我希望该行仍被选中 很好的解决方案 更紧凑的版本 beforeSelectRow function rowid e return this ge
  • jqgrid更改列标题属性

    当我将鼠标悬停在特定单元格值上时 悬停值与单元格值相同 我可以更改与单元格值不同的悬停文本吗 Thanks 您可以在列的 colModel 中使用 cellattr 属性来设置自定义工具提示 例如 cellattr function ret
  • 将 bootstrap select2 与 JqGrid 表单一起使用

    我正在尝试使用 jqgrid 形式实现 bootstrap select2 但似乎可以正确执行 在 jqgrid 声明的 colmodel 上我有 name staff index staff width 31 formoptions el
  • JQgrid 从列中保存和恢复对象

    可以将复杂的对象保存到列中并在之后恢复它 这是一个例子 杰森 datamain mydata address data1 15 data2 0 0 data3 1000 Jqgrid jQuery rowed5 jqGrid datatyp
  • jqGrid 内联编辑:自动完成列的奇怪行为

    我有一个带有自动完成列的 jqGrid 使用内联编辑 当用户从自动完成列中选择一个值时 事件处理程序会在另一列上设置一个值 并将自动完成列上的值设置为除label从自动完成源返回 两列定义 完整jsFiddle http jsfiddle
  • 在 jqgrid 中编辑树形网格展开列的任何字段时..获取该单元格的 html 内容,而不是实际值。有什么解决办法吗?

    在 jqgrid for treegrid 中 当我单击 ExpandColumn name 列的单元格中显示的值进行编辑时 我将获取单元格内内容的 html 我得到的 html 内容是 div class tree wrap tree w
  • jqGrid 传递值到表单编辑

    我有一个 jqGrid 字段 如下所示 colModel name Enabled index Enabled width 45 editable true edittype checkbox editoptions value 1 0 f
  • 如何修复 css({ float: 'left' }) [重复] 上的闭包编译器错误

    这个问题在这里已经有答案了 可能的重复 Google Closure 编译器解析错误 属性 ID 无效css float left https stackoverflow com questions 6611867 google closu
  • jqgrid 掩码十进制数字单元格

    我的 jgrid 中有一个 float 类型的列 我想在用户输入单元格时屏蔽列单元格 例如 掩码应为 99999 99 当 9 0 9 之间的任何数字时 我希望该点左侧最多有 5 位数字 该点右侧最多有 2 位数字 并且可以输入少于最大值的
  • 删除记录时找不到元素

    JqG rid 4 6 一切正常 唯一的问题是 当我打开 Firefox 调试器并转到控制台时 如果我删除一条记录 单击垃圾桶图标 然后弹出删除对话框 单击删除按钮并刷新页面等 调试器会警告我 没有找到元素 可能的脚本是 gridSelec
  • 当 contentType=application/json 时 Jquery JQGrid 中断?

    我必须使用 ajaxSetup 将 contentType 全局更改为 application json ajaxSetup contentType application json charset utf 8 请参阅此问题了解为什么我必须
  • 在 MVC 应用程序中显示 jqGrid 页脚行中的数据

    我需要帮助在 jqGrid 页脚行中显示数据 这是我在服务器上的配置 注意用户数据 小时 line Format the data for the jqGrid var jsonData new total totalPages page
  • jqGrid:使用本地数据类型加载嵌套子网格时出现问题

    我正在尝试使用 jqGrid 和本地数据让嵌套子网格工作 我已经搜索了很多 但未能找到解决方案 这是我的代码的简化示例 var mainGridData main grid data id m1 col1 11 col2 12 id m2
  • 免费 JqGrid - 网格不刷新

    我有一个组合框 当选择更改时 关联的网格将重新填充新数据 div class container fluid div class row div class col md 4 div div div
  • 为什么使用 gridview:true 以及它的含义是什么?

    我正在 JqGrid 上工作 我想知道如果我们指定的话意味着什么gridview true 以及什么情况下我们需要提供 我最近正在开发一个这样的 jqGrid 和我的afterInsertRow没有被调用 一旦我删除了gridview tr
  • jqgrid editoptions:必需的不起作用

    好吧 不确定我在这里做错了什么 list jqGrid url URL datatype json mtype GET colModel label Index index Index key true hidden true label
  • jqGrid过滤

    我想在我的中实现过滤jqGrid http www trirand com jqgridwiki doku php id start in my Spring框架MVC http en wikipedia org wiki Spring F

随机推荐