【发布时间】:2016-02-17 07:25:10
【问题描述】:
我们如何允许用户每组只选择一行?
我有以下代码。
var data = [
{ ActionItemId: "AAZ08702-0001104", StrarTime: "2007-10-01", Category: "General", CategoryDetails: "dummy text of industry. a galley of type ", TargetCategory: "200.00",
TargetDateCategory: "10.00", ActualCategory: "210.00"}
];
$("#jqGrid").jqGrid({
data: data,
datatype: "local",
colModel: [
{ label: 'Action Item ID', name: 'ActionItemId', key: true },
{ label: 'Start Time', name: 'StrarTime'},
{ label: 'Category', name: 'Category'},
{ label: 'Details', name: 'CategoryDetails', cellattr: function (rowId, tv, rawObject, cm, rdata) { return 'style="white-space: normal;"' }},
{ label: 'Target <Category>', name: 'TargetCategory' },
{ label: 'Target Date <Category>', name: 'TargetDateCategory'}
],
loadonce: true,
viewrecords: true,
//width: 1000,
height: 400,
rowNum: 20,
rowList: [20, 30, 50],
rownumbers: true,
rownumWidth: 25,
multiselect: true,
shrinkToFit: false,
pager: "#jqGridPager",
grouping: true,
groupingView: {
groupField: ["Category"],
groupColumnShow: [true],
groupText: ["Category: <b>{0}</b>"],
groupOrder: ["asc"],
groupSummary: [false],
groupCollapse: false
}
});
我需要禁用每列选择多行的功能。有可能吗?
分组功能中是否有一个设置可以按照 mu 要求启用?还是应该定制开发?
注意:我只添加了一列以避免问题中的代码很长
【问题讨论】:
-
抱歉,我还不清楚您需要实施哪种行为。让我们用户选择一行。如果已经选择了同一组中的另一行,或者您想取消选择先前选择的行(来自同一组)并选择当前单击的行,是否要拒绝选择?
-
您提到的第一个选项。例如:用户选择一行,他不能再从同一个组中选择行,但他可以从其他组中选择行。显然用户只能从每个组中选择一行
-
您可以使用
beforeSelectRow回调来拒绝选择任何行。在beforeSelectRow回调中,您可以测试任何自定义条件并返回false以拒绝选择或返回true以允许选择。取决于您使用的 jqGrid 版本,只有在用户单击复选框直接的情况下,才可能需要取消选中多选复选框。有多种方法可以测试已选择的行(来自selarrrow)是否与当前单击的行位于同一组中。如果使用小页面大小(selarrrow),任何方式都可以。 -
如何检查当前单击的行在哪个组中,如何禁用仅选择该组?
-
@Oleg 请让我知道是否有办法取消选中当前选定行组的其他行。我还是被困在这里。