我有一个MVC 3 Razor Telerik网格。我在行上有一个编辑命令。
当用户点击“编辑”(这会将网格置于“编辑”模式并显示“更新和取消”按钮)时,我想将其中两列的属性设置为只读。
当用户点击取消或更新时,我想将列设置回完全权限。
我知道控制器中必须有一些属性,我可以在按下编辑按钮时设置这些属性,但是没有看到任何关于如何实现此目的的文档。
我该怎么做?
我正在使用版本2011.2.712.340的控件。
答案 0 :(得分:3)
您在上面描述的内容听起来有点令人困惑。 readonly属性的目的是确保当您的行进入编辑模式时,无法编辑具有只读显式设置的列,这似乎是您正在寻找的。在常规读取模式下,无论是否设置了readonly,所有列都将具有相同的权限,因为您只是查看数据而不是编辑。
在评论澄清之后进行修改:
似乎您希望在插入记录时可以编辑此字段,但在编辑行时则不能。嗯,这可以使用一些JavaScript来完成。如果您使用Ajax绑定(触发此事件的唯一方法),您可以通过订阅onEdit客户端事件来执行以下操作:
...
.ClientEvents(clientEvents => clientEvents.OnEdit("onEdit"))
...
这是JavaScript:
<script type="text/javascript">
function onEdit(e) {
var form = e.form;
var mode = e.mode;
if (mode == "edit") {
var country = form.Country; //Country is a public property of my Model
country.disabled = true;
}
}
正如您在上面所看到的,我获得了带有相关编辑行的表单,并专门抓取与我不想编辑的属性相关联的字段并禁用该输入元素。