Как мы можем разрешить пользователям выбирать только одну строку для каждой группы?jqgrid выбрать только одну строку в группе
У меня есть следующий код.
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? или он должен быть специально разработан?
Примечания: Я только добавил один столбец, чтобы избежать очень длинный кода в вопросе
Извините, но для меня не совсем понятно, какое поведение вам нужно реализовать. Позвольте пользователю выбрать строку. Вы хотите отказать в выборе, если другая строка из той же группы уже выбрана или вы хотите отменить выбор ранее выбранной строки (из той же группы) и выбрать текущую строку? – Oleg
Первый вариант, который вы упомянули. пример: пользователь выбирает строку, он больше не может выбирать строки из той же группы, но он может выбирать строки из других групп. видимо, пользователь может выбрать только одну строку из каждой группы – ChathuraSam
, вы можете использовать обратный вызов 'beforeSelectRow', чтобы запретить выбор любой строки. Внутри обратного вызова 'beforeSelectRow' вы можете протестировать любые ваши пользовательские критерии и вернуть' false', чтобы запретить выбор или вернуть 'true', чтобы разрешить выбор. В зависимости от версии jqGrid, которую вы используете, может потребоваться снять флажок многоселектора только в том случае, если пользователь щелкнул * напрямую * на флажке. Существуют различные способы проверки того, находится ли уже выбранная строка (из 'selarrrow') в той же группе, что и в текущий момент. В случае использования небольшого размера страницы ('selarrrow') любой способ в порядке. – Oleg