需要jquery.treegrid.js
https://github.com/maxazan/jquery-treegrid
还有对应的CSS
.treegrid-indent {
width: 16px;
height: 16px;
display: inline-block;
position: relative;
}.treegrid-expander {
width: 16px;
height: 16px;
display: inline-block;
position: relative;
cursor: pointer;
}.treegrid-expander-expanded {
background-image: url(../img/collapse.png);
}.treegrid-expander-collapsed {
background-image: url(../img/expand.png);
}
https://github.com/maxazan/jquery-treegrid
还有对应的CSS
.treegrid-indent {
width: 16px;
height: 16px;
display: inline-block;
position: relative;
}.treegrid-expander {
width: 16px;
height: 16px;
display: inline-block;
position: relative;
cursor: pointer;
}.treegrid-expander-expanded {
background-image: url(../img/collapse.png);
}.treegrid-expander-collapsed {
background-image: url(../img/expand.png);
}
解决方案 »
- Asp.net 2008无法调试
- GridView 怎么固定首列始终显示固定的行数
- 在VS中运行页面和发布之后在IIS中运行到底有什么区别
- 图片防盗链求助(有偿)紧急!~
- 只要你是拼SQL的,无论的玩什么花样,都会被注入..
- ASP.NET2.0网站中动态加载用户控件时点两下的问题
- datagrid的模板列中的dropdownlist里面存储的是文件的名字,请问如何把该文件保存到本地?
- 如何将EXCEL嵌入WEB,从后台读取信息,同时显示点击单元格可以动态实时更新?
- c#有提交的语法码?
- 求解决ASP.NET 服务器数据7-zip解压缩问题,急,急,急!恳请高手帮忙
- 刚使用DevExpress控件组,ASPxGridview操作数据,新增时出问题,求教
- 请大神,关于WEBAPI用户认证,在API里获取当前用户的问题
function Comp_InitGrid() {
var Comp_queryData = {
Comp_MemberId: $.trim($("#Comp_MemberId").textbox("getValue")),
Comp_MemberName: $.trim($("#Comp_MemberName").textbox("getValue"))
};
$('#Comp_grid').datagrid({ //定位到Table标签,Table标签的ID是grid
url: host_key + '/Complaint/GetAppList', //指向后台的Action来获取当前菜单的信息的Json格式的数据
title: '投诉列表',
iconCls: 'icon-view',
fit: true,
fitColumns: true,
view: detailview,
nowrap: true,
autoRowHeight: false,
striped: true,
collapsible: true,
rownumbers: true,
sortOrder: 'asc',
remoteSort: false,
singleSelect: true, //选中行唯一
pagination: true,
pageSize: 15,
pageList: [15, 30, 45, 60],
method: 'post',
idField: 'Id',
queryParams: Comp_queryData, //异步查询的参数
columns: [[
{ title: "Id", field: "Id", width: 95, hidden: true },
{ title: "日期", field: "C_Time", width: 95, hidden: true, formatter: DateFormat },
{ title: "投诉人", field: "uName", width: 95, sortable: true },
{ title: "投诉内容", field: "Msg", width: 95, sortable: true },
{ title: "记录人", field: "Creator", width: 95, sortable: true },
{ title: "来源", field: "Comefrom", width: 95, sortable: true },
{ title: "进度", field: "state", width: 95, sortable: true,formatter: stateFormat },
{ title: "状态", field: "CloseFlag", width: 95,formatter:CompFlagFormat },
{ title: "操作", field: "ViewOper", width: 175, formatter: Operation } ]],
onClickCell: function (index, row) {
if (row == "ViewOper") {
//$('#Comp_grid').datagrid('selectRow', index);
}
},
onLoadSuccess: function (row, data) {
if (data != null && data.total > 0) {
$('.viewCompcls').linkbutton({ text: '详细', plain: true, iconCls: 'icon-menu' });
$('.AddProcesscls').linkbutton({ text: '新增进度', plain: true, iconCls: 'icon-add' });
$('.CloseCompcls').linkbutton({ text: '关闭', plain: true, iconCls: 'icon-undo' });
}
},
detailFormatter: function (rowIndex, rowData) { //对“+”的详细设置
return '<div style="padding:2px;height:100%;"><table id="ddv-' + rowIndex + '"></table></div>';
},
onExpandRow: function (indexRelease, rowRelease) { //当“+”点击后展开发生的事件
var obj = $('#ddv-' + indexRelease);
if (!obj.data('init')) {//未初始化过
$('#ddv-' + indexRelease).datagrid({
url: '/Complaint/GetAppProcessList', //指向后台的Action来获取当前菜单的信息的Json格式的数据
iconCls: 'icon-tb',
fitColumns: true,
singleSelect: true,
rownumbers: true,
loadMsg: '',
height: 'auto',
idField: 'Id',
queryParams: { CompRecId: rowRelease.Id }, //异步查询的参数
columns: [[
{ title: "Id", field: "Id", width: 95, hidden: true },
{ title: "日期", field: "C_Time", width: 95, formatter: DateFormat },
{ title: "记录人", field: "Creator", width: 95, sortable: true },
{ title: "描述", field: "", width: 95, sortable: true },
{ title: "下一部门", field: "NextDepName", width: 95, sortable: true },
{ title: "下一处理人", field: "NextOperName", width: 95, sortable: true },
{ title: "状态", field: "ProcFlag", width: 95, formatter: ProcFlagFormat }
]],
onLoadSuccess: function (row, data) {
setTimeout(function () {
var tr = obj.closest('tr'), //获取子表格所在行
id = tr.prev().attr('id'); //此子表格父行所在行的id
id = id.replace(/-2-(\d+)$/, '-1-$1'); //detailview没有展开的前部分的id是有规则的
//通过下面的这2个示例你应该不难看出改变的是什么
//datagrid-row-r1-1-0
//datagrid-row-r1-2-0
$('#' + id).next().css('height', tr.height());//设置没展开的前部分的高度,由于启用了计时器,会闪一下
}, 1); //延时触发设置高度事件,因为这个事件只是数据加载完毕,并没有生成DOM对象,不延时触发设置不了
}
})
}
obj.data('init', true);
}
})
};
你好请问这个问题解决了,我目前也在用ACE模板遇到这个问题
把这个注释掉就可以正常使用了,当然,这样就用不了ace.min.css中的样式了。具体冲突在哪个地方我没去看。
其中left属性值为none,这就导致了树的折叠图标在表格的下方(表格下方border位置)。又由于没有引入treeGrid加载的图标,所以看不到。
所以让人感觉treeGrid没起作用一样。
修改ace.min.css 中 的 .ui-jqgrid .tree-wrap-ltr 值即可。
/* Icons
----------------------------------*//* states and images */
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_469bdd_256x240.png); }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_469bdd_256x240.png); }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_d8e7f3_256x240.png); }
.ui-state-default .ui-icon { background-image: url(images/ui-icons_6da8d5_256x240.png); }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_217bc0_256x240.png); }
.ui-state-active .ui-icon {background-image: url(images/ui-icons_f9bd01_256x240.png); }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }/* positioning */
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
.ui-icon-carat-1-e { background-position: -32px 0; }
.ui-icon-carat-1-se { background-position: -48px 0; }
.ui-icon-carat-1-s { background-position: -64px 0; }
.ui-icon-carat-1-sw { background-position: -80px 0; }
.ui-icon-carat-1-w { background-position: -96px 0; }
.ui-icon-carat-1-nw { background-position: -112px 0; }
.ui-icon-carat-2-n-s { background-position: -128px 0; }
.ui-icon-carat-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -64px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -64px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-book { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-off { background-position: -96px -144px; }
.ui-icon-radio-on { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
代码太长,楼下还有
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }然后在路径下添加上以下4张图片
ui-icons_d8e7f3_256x240.png
ui-icons_2e83ff_256x240.png
ui-icons_469bdd_256x240.png
ui-icons_217bc0_256x240.png这样图标就出来了,效果图如下
jQuery(function($) {
var grid_selector = "#grid-table";
var pager_selector = "#grid-pager";
jQuery(grid_selector).jqGrid({
url: 'sysmenu/querySysmenuList.html',
datatype: "json",
treeGrid: true,
treeGridModel: 'adjacency',
ExpandColumn : 'name',
colNames:['主键', '路径', '名称', '父Id'],
colModel:[{name : 'mainId',index : 'mainId',hidden:true,key:true, editable:true},
{name : 'name',index : 'name',width : 150,editable : true},
{name : 'url',index : 'url',width : 200,editable : true},
{name : 'parentId',index : 'parentId',editable : true}
],
pager: "true",
jsonReader: {
root: "dataRows",
repeatitems : false
},
treeReader : {
level_field: "level",
parent_id_field: "parentId",
leaf_field: "isLeaf",
expanded_field: "expanded"
},
sortorder: "desc",
caption: "jqGrid test",
height: "auto"
}); 返回的json格式是这样的:
[{"delFlag":"0","expanded":false,"isLeaf":false,"isShow":true,"level":1,"loaded":true,"mainId":"40281e815beda90f015bedcf7102000f","menuIcon":"","name":"计划任务","parentId":"40288ab85cf8276b015cf82debcb005b","permission":"task:schedulejob:list","url":"task/schedulejob"},
{"delFlag":"0","expanded":false,"isLeaf":false,"isShow":true,"level":1,"loaded":true,"mainId":"40281e815c097acf015c097bcaea0000","menuIcon":"","name":"用户最后在线情况","parentId":"4028ea815a701416015a7075b4f9001f","permission":"sys:userlastonline","url":"sys/lastOnline"},
{"delFlag":"0","expanded":false,"isLeaf":false,"isShow":true,"level":1,"loaded":true,"mainId":"40281e815c547c32015c54a21e260038","menuIcon":"","name":"生成案列","parentId":"4028ea815a78e9e6015a78f1dc9d0000","permission":"","url":""}}]必须有的字段:expanded、isLeaf、level、parentId(默认是parent)
不懂的去百度页面代码