资讯动态

界面控件DevExpress ASP.NET中文 - 如何自定义编辑表单运行时布局?

发布时间:2026/8/8 17:37:55 来源:尧图企业网站定制
在DevExpress ASP.NET控件v19.2版本中就针对ASP. NET WebForms和MVC平台的ASP. NET GridView和CardView控件添加了一个主要增强功能。DevExpress新旧版本帮助文档获取可点击这篇文章查看——《界面控件DevExpress v26.1帮助文档大全CHM版本》当您使用预定义的或 自定义的编辑表单时经常需要动态地更改布局。例如您可能需要根据用户操作、用户权限或需要编辑行的值(或状态)显示/隐藏特定的项或项组。虽然存在现有的CellEditorInitialize事件但它不提供对编辑表单的布局项访问。为了解决这个问题产品团队基于服务器或客户端的各种条件实现了Edit Form布局项(如编辑器、按钮、布局组)的运行时自定义。例如下面是GridView的编辑表单控制客户端Dismissal Information 组选项卡的可见性当用户输入 Dismissal Date的值时显示选项卡否则一个空白值隐藏选项卡要访问布局项并在服务器端更改其设置请使用新的EditFormLayoutCreated事件。protected void grid_EditFormLayoutCreated(object sender, DevExpress.Web.ASPxGridViewEditFormLayoutEventArgs e) { ASPxGridView gridView sender as ASPxGridView; LayoutGroup layoutGroupDismissal (LayoutGroup)e.FindLayoutItemOrGroup(DismissalInformation); if(layoutGroupDismissal null) return; if(gridView.IsNewRowEditing) { layoutGroupDismissal.Visible false; return; } var fireDate gridView.GetRowValues(e.RowVisibleIndex, FireDate); layoutGroupDismissal.ClientVisible fireDate ! null (DateTime)fireDate ! DateTime.MinValue; }EditFormLayoutCreated事件使用户有机会为不同的行创建不同布局可以为新的布局项或现有的布局项定制设置还可以删除、创建、重新排列组项以及管理行和列的跨度等。下面的客户端方法提供了对客户端布局项的访问GetEditFormLayout – 返回内置Edit Form Layout控件的客户端实例。GetEditFormLayoutItemByColumn - 返回与指定列相关的布局项。GetEditFormLayoutItemOrGroup – 根据项或组的名称返回项或组。下面的例子演示了如何切换一个项目的可见性function onShowHideInfoClick(s, e) { var contactLayoutGroup clientGrid.GetEditFormLayoutItemOrGroup(groupContactInfo); contactLayoutGroup.SetVisible(!contactLayoutGroup.GetVisible()); }您可以使用类似的方法来控制项目组包括选项卡组。CardView新的功能也可以在CardView控件中使用我们使用两个方法(FindLayoutItemByColumn和FindLayoutItemOrGroup)填充CardLayoutCreated事件的参数它们允许您查找布局项以及指示当前卡片是否正在编辑的IsEditingCard 选项。在客户端CardView控件提供了与GridView相同的API来管理布局项。GetEditFormLayout – 返回内置Edit Form Layout控件的客户端实例。GetEditFormLayoutItemByColumn - 返回与指定列相关的布局项。GetEditFormLayoutItemOrGroup – 根据项或组的名称返回项或组。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价