У меня есть jqGrid вместе с панелью инструментов jQery UI.Моя панель инструментов состоит из режима просмотра и редактирования.В моем jqGrid onSelectRow я проверяю режим редактирования с помощью метода isInEditMode.Возвращается значение true, если кнопка с активным состоянием ui является кнопкой редактирования.
Кажется, что моя сетка загружается правильно, и классы при наведении курсора включаются / выключаются, как при наведении мыши на строки.Если я не в режиме редактирования и щелкаю строку, это выполняет другие функции, что является правильным.Но когда isInEditMode возвращает true, он только позволяет onSelectRow запускать ONCE.
Большое спасибо за помощь.
var lastselTsg;
grid.jqGrid({
colNames: ['BudgetId', 'BudgetAccountId', 'Account #', 'Name', 'Cost', 'StaticRowId', 'SortOrder'],
colModel: [
{ name: 'BudgetId', index: 'BudgetId', hidden: true, edithidden: true },
{ name: 'BudgetAccountId', index: 'BudgetAccountId', hidden: true, edithidden: true },
{ name: 'AccountNumber', index: 'AccountNumber', sortable: false, width: 70 },
{ name: 'BudgetName', index: 'BudgetName', sortable: false, width: 230, editable: true, edittype: 'text', editoptions: {
defaultValue: "",
dataInitInit: function (el) {
var value = $(el).val();
value = value.replace("<strong>", "");
value = value.replace("</strong>", "");
$(el).val(value);
$(el).focus();
if (value == "") {
$(el).remove();
return false;
}
}
}
},
{ name: 'TotalCost', index: 'TotalCost', sortable: false, formatter: totalCurrencyFormatter, width: 100 },
{ name: 'StaticRowId', index: 'StaticRowId', sortable: false, hidden: true, edithidden: true },
{ name: 'SortOrder', index: 'SortOrder', sortable: false, hidden: true, edithidden: true }
],
pager: pager,
pgbuttons: false,
pginput: false,
rowlist: [],
sortname: 'SortOrder',
rowNum: 99999999,
sortorder: "asc",
datatype: "json",
viewrecords: true,
url: url + "GetLoad",
editurl: url + "SaveGrid/",
loadComplete: function (data) {
},
onSelectRow: function (rowId) {
if (isInEditMode(budgetId)) {
if (rowId && rowId !== lastselTsg) {
grid.jqGrid('restoreRow', lastselTsg);
var rowData = grid.jqGrid("getRowData", rowId);
if (rowData != undefined && rowData != null) {
console.debug("entering edit mode");
grid.jqGrid('editRow', rowId, true, '', '', url + 'SaveTopSheet', {
budgetAccountId: rowData.BudgetAccountId
},
function(rowid, response) {
console.debug("aftersave: reloadGrid");
grid.trigger("reloadGrid");
}, '', function(rowid, reuslt) {
console.debug("after restore: reloadGrid");
grid.trigger("reloadGrid");
});
}
lastselTsg = rowId;
}
} else {
var getRowData = $("#baseTopSheetGrid" + budgetId).jqGrid('getRowData');
var rowData = getRowData[rowId - 1];
onSelectGridRow(rowData);
}
},
gridComplete: function () {
var ids = grid.jqGrid('getDataIDs');
var getRowData = grid.jqGrid('getRowData');
if ($.isFunction(budgetGridLoadComplete))
budgetGridLoadComplete(getRowData);
}
}).navGrid(pager, { edit: false, add: false, del: false, search: true });