easyUI datagrid-detailview 子表设置singleSelect: false不能选择行

forcyever 2015-06-06 05:48:04
easyui1.4.1版本
嵌套表格,在子表里面添加了checkbox,但是singleSelect: true鼠标点击某行就会勾选checkbox,但是设置为singleSelect: false时点击行就不会勾选了。
如下图:(请忽略虚化)





datagrid = $("#dgrid").datagrid({
url: '../AccountAction/Account.ashx?', //加载的URL
iconCls: "icon-save", //图标
title: "帐号管理",
loadMsg: "正在加载数据,请稍等...",
idField: "ID",
pagination: true, //显示分页
pageSize: 10, //分页大小
pageList: [5, 10, 15, 20], //每页的个数
fit: true, //自动补全
fitColumns: true,
queryParams: queryParams,
rownumbers: true, //显示行号
singleSelect: true,
columns: column,
view: detailview,
detailFormatter: function (index, row) {
return '<div style="padding:2px"><table class="ddv"></table></div>';
},
onExpandRow: function (index, row) {
var ddv = $(this).datagrid('getRowDetail', index).find('table.ddv');
ddv.datagrid({
url: '../AccountAction/DisplayNumberHandler.ashx' ,
fitColumns: true,
singleSelect: false,
rownumbers: true,
loadMsg: '正在加载数据,请稍等...',
height: 'auto',
columns: [[
{field:'ck',checkbox:true},
{ field: 'PHONE', title: '号码', align: "center", width: 60 },
{ field: 'APPID', title: 'ID', align: "center", width: 100 },
{
field: '提交', title: '提交', align: "center", width: 100, formatter: function (value, rowData, rowIndex) {
return "<a class=\"l-btn l-btn-small l-btn-plain\" style=\"color:blue\" onclick=\"QueryAppState('" + value + "','" + rowData.APPNAME + "');\"><span class=\"l-btn-left l-btn-icon-left\"><span class=\"l-btn-text\">" + "申请" + "</span><span class=\"l-btn-icon icon-edit\"></span></span></a>";
}
}
]],
onResize: function () {
$('#dg').datagrid('fixDetailRowHeight', index);
},
onLoadSuccess: function () {
setTimeout(function () {
$('#dg').datagrid('fixDetailRowHeight', index);
}, 0);
}
,
toolbar: [ //工具条
{
text: "批量删除", iconCls: "icon-add", handler: function () {//回调函数
var rows = datagrid.datagrid('getSelections');
if (rows.length <= 0) {
$.messager.alert('警告', '您没有选择', 'error');
}
//AddAccount();
}
}

]
});
$('#dg').datagrid('fixDetailRowHeight', index);
},
toolbar: [ //工具条
{
text: "号码", iconCls: "icon-upload", handler: function () {//回调函数
var rows = datagrid.datagrid('getSelections');
if (rows.length <= 0) {
$.messager.alert('警告', '您没有选择', 'error');
}
UploadCommitmentLetter();
}
}

]
});
...全文
4351 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36325018 2016-11-16
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
好吧……
forcyever 2015-06-08
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
$('#moduledg').datagrid({
                    url: '../Ajax/ModuleManager.ashx?ACT=GetModules',
                    striped: true,
                    rownumbers: true,
                    fitColumns: true,
                    singleSelect: false,
                    pagination: true,
                    idField: 'ID',
                    nowrap: false,
                    toolbar: '#moduletoolbar',
                    rowStyler: function (index, row) {
                        if (row.Type != 0) {
                            return "color:#6293BB";
                        }
                    },
                    onUncheck: function (rowIndex, rowData) {
                        $('#permtabs div.panel:eq(1) table.datagrid-btable td[field=Funs]:eq(' + rowIndex + ') :checkbox').removeAttr('checked');
                    },
                    onUncheckAll: function (rows) {
                        $('#permtabs div.panel:eq(1) :checkbox').removeAttr('checked');
                    },
                    onLoadSuccess: function (data) {
                        emptyDataGrid(data);
                        if (data.total > 0) {
                            for (var i = 0; i < data.rows.length; i++) {
                                var module = data.rows[i];
                                var funNames = [];
                                var funtd = $('#permtabs div.panel:eq(1) table.datagrid-btable td[field=Funs]:eq(' + i + ')');
                                if (module.FunIds.length > 0) {
                                    funNames = module.Funs.split(',');
                                    funtd.click(function (event) {
                                        event.stopPropagation();
                                    });
                                }

                                if (funNames.length > 0) {
                                    var h = '';
                                    for (var j = 0; j < funNames.length; j++) {
                                        h += '<label style="margin-right:10px;"><input idx="' + i + '" fid="' + module.FunIds[j] + '" type="checkbox"/>' + funNames[j] + '</label>';
                                    }
                                    $('div', funtd).html(h);
                                    $(':checkbox', funtd).click(function (event) {
                                        event.stopPropagation();
                                        if ($(this).attr('checked') == 'checked') {
                                            $('#moduledg').datagrid('checkRow', $(this).attr('idx'));
                                        }
                                    });
                                }
                            }
                            fitRoleModules();
                        }
                    },
                    columns: [[{ field: 'ck', checkbox: true },
                        { field: 'Name', width: 40, align: 'center', title: moduleGridText.columns.Name },
                        { field: 'Url', width: 50, align: 'center', title: moduleGridText.columns.Url },
                        { field: 'Funs', width: 80, align: 'left', title: moduleGridText.columns.Funs,
                            formatter: function (value, row, index) {
                                return '';
                            }
                        }]]
                });
当初的一段代码,给你做下参考
你理解错我的意思了,我使用的easyui版本为1.4.1后来更换为1.4.2就OK了
  • 打赏
  • 举报
回复
$('#moduledg').datagrid({
                    url: '../Ajax/ModuleManager.ashx?ACT=GetModules',
                    striped: true,
                    rownumbers: true,
                    fitColumns: true,
                    singleSelect: false,
                    pagination: true,
                    idField: 'ID',
                    nowrap: false,
                    toolbar: '#moduletoolbar',
                    rowStyler: function (index, row) {
                        if (row.Type != 0) {
                            return "color:#6293BB";
                        }
                    },
                    onUncheck: function (rowIndex, rowData) {
                        $('#permtabs div.panel:eq(1) table.datagrid-btable td[field=Funs]:eq(' + rowIndex + ') :checkbox').removeAttr('checked');
                    },
                    onUncheckAll: function (rows) {
                        $('#permtabs div.panel:eq(1) :checkbox').removeAttr('checked');
                    },
                    onLoadSuccess: function (data) {
                        emptyDataGrid(data);
                        if (data.total > 0) {
                            for (var i = 0; i < data.rows.length; i++) {
                                var module = data.rows[i];
                                var funNames = [];
                                var funtd = $('#permtabs div.panel:eq(1) table.datagrid-btable td[field=Funs]:eq(' + i + ')');
                                if (module.FunIds.length > 0) {
                                    funNames = module.Funs.split(',');
                                    funtd.click(function (event) {
                                        event.stopPropagation();
                                    });
                                }

                                if (funNames.length > 0) {
                                    var h = '';
                                    for (var j = 0; j < funNames.length; j++) {
                                        h += '<label style="margin-right:10px;"><input idx="' + i + '" fid="' + module.FunIds[j] + '" type="checkbox"/>' + funNames[j] + '</label>';
                                    }
                                    $('div', funtd).html(h);
                                    $(':checkbox', funtd).click(function (event) {
                                        event.stopPropagation();
                                        if ($(this).attr('checked') == 'checked') {
                                            $('#moduledg').datagrid('checkRow', $(this).attr('idx'));
                                        }
                                    });
                                }
                            }
                            fitRoleModules();
                        }
                    },
                    columns: [[{ field: 'ck', checkbox: true },
                        { field: 'Name', width: 40, align: 'center', title: moduleGridText.columns.Name },
                        { field: 'Url', width: 50, align: 'center', title: moduleGridText.columns.Url },
                        { field: 'Funs', width: 80, align: 'left', title: moduleGridText.columns.Funs,
                            formatter: function (value, row, index) {
                                return '';
                            }
                        }]]
                });
当初的一段代码,给你做下参考
  • 打赏
  • 举报
回复
我当初一列有多个checkbox时,除了那个可以自动控制的,其它的都是在onUncheck,onUncheckAll,onLoadSuccess这些地方添加复选框和控制的,全自己实现

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧