【发布时间】:2014-06-26 09:34:35
【问题描述】:
我有一个RadGrid,其中EditMode 设置为Batch。我想在某些条件下禁用列编辑,例如对于条件“A”我需要启用编辑,对于条件“B”我需要禁用编辑。
【问题讨论】:
标签: telerik telerik-grid radgrid
我有一个RadGrid,其中EditMode 设置为Batch。我想在某些条件下禁用列编辑,例如对于条件“A”我需要启用编辑,对于条件“B”我需要禁用编辑。
【问题讨论】:
标签: telerik telerik-grid radgrid
我使用了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() == "原因" || args.get_columnUniqueName() == "评论") { if (rulesValue == 'false') { args.set_cancel(true); } }
}
【讨论】: