我有一个
RadGrid
,其中 EditMode
设置为 Batch
。我想在某些条件下禁用列编辑,例如对于条件“A”,我需要启用编辑,对于条件“B”,我需要禁用编辑。
我使用了java脚本:
在 RadGrid 中,您只需添加代码:
<ClientSettings ...
<ClientEvents OnRowClick="OnRowClick" />
...>
在 JavaScript 中:
function OnRowClick(sender, eventArgs) {
var RowID = eventArgs.get_id(); //get Row
var masterTable = $find("<%=rdGrid.ClientID%>").get_masterTableView(); //get Grid
var ControlX = masterTable.get_dataItems()[RowID].findElement('ControlX').id; //get Control ID
//check conditions then disable or enable...
$(ControlX).prop('disabled', false); //Get Control and Disable the editing
...
}
我尝试过这个,它有效。
<ClientSettings AllowKeyboardNavigation ="true">
<ClientEvents OnBatchEditOpening="batchEditOpening" OnBatchEditOpened="batchEditOpened" OnBatchEditClosed="OnBatchEditClosed" OnKeyPress ="KeyPress" />
</ClientSettings>
function batchEditOpening(sender, args) {
var rulesValue = document.getElementById("cphContent_LoginAuditControl_RolesHiddenField").value;
if (args.get_columnUniqueName() == "Reason" || args.get_columnUniqueName() == "Comment") {
if (rulesValue == 'false') {
args.set_cancel(true);
}
}