在编辑期间设置 Telerik MVC 网格列属性
Posted
技术标签:
【中文标题】在编辑期间设置 Telerik MVC 网格列属性【英文标题】:Setting Telerik MVC grid column properties during an Edit 【发布时间】:2011-12-11 00:59:36 【问题描述】:我有一个 MVC 3 Razor Telerik 网格。我在行上有一个编辑命令。
当用户单击“编辑”时(这会将网格置于带有“更新”和“取消”按钮的编辑模式),我想将其中两列的属性设置为 只读。
当用户点击取消或更新时,我想将列设置回完全权限。
我知道控制器中必须有一些属性,当为此按下编辑按钮时我应该能够设置,但还没有看到任何有关如何完成此操作的文档。
我该怎么做?
我使用的是 2011.2.712.340 版本的控件。
【问题讨论】:
【参考方案1】:您上面的描述听起来有点令人困惑。 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;
正如您在上面看到的,我得到了带有相关编辑行的表单,并专门抓取了与我不想被编辑的属性相关联的字段并禁用了该输入元素。
【讨论】:
这是正确的,除了我使用相同的视图进行编辑和插入。对于插入,这些字段应关闭 Readonly 标志。对于编辑,我希望这两个字段打开 Readonly 标志。在我可以在控制器中设置这些属性的网格上单击编辑时,必须有一个控制器操作。以上是关于在编辑期间设置 Telerik MVC 网格列属性的主要内容,如果未能解决你的问题,请参考以下文章
仅在编辑单击时将 ReadOnly 属性设置为 devexpress 网格(MVC)的列
Telerik MVC Grid:如何在列中使用 DropDownList?