提问人:Wsculley 提问时间:11/2/2023 更新时间:11/2/2023 访问量:34
将 DevExpress FormLayout 嵌套在 formview 项模板中
Nesting DevExpress FormLayout inside of a formview Item Template
问:
我正在处理一个项目的新部分,他们希望将附加法案的协议的详细信息显示在 WebForms 项目元素的一个元素中。我遇到以下错误屏幕
由于我不需要具有完整表单视图的编辑功能,因此我尝试通过将 Dev Express ASPX 表单布局元素嵌套在项模板中来实现此目的,调用隐藏字段的值 (id=“StorageAgreementId”) 来填充排列到布局字段内的布局中的标签集合。
该窗体布局应该在利用对象数据源获取存储帐单信息后调用数据库,该对象数据源直接在标记中的 FormLayout 之后利用项模板内部定义的控件。下面是标记:
到目前为止,这一切都对我来说是有道理的,当我没有为要进行数据绑定的元素设置绑定时,表单布局完全按照我想要的样子出现,所以我知道它不是布局本身。我采取的下一步是选择每个标签,并通过任务上下文菜单应用数据绑定,如下图所示:
ItemTemplate 的图像以及我在其中放置 FormLayout 和它所引用的 ODS 的表的单元格
这是发生错误的时候。我觉得奇怪的是,当协议是表单布局中显示的唯一字段时,不会发生错误(通过注释掉和消除违规部分进行测试)
我主要是一个 MVC 人,所以我不确定缺少什么,或者我是否需要在代码隐藏 (VB.Net) 中做一些特殊的事情,特别是因为我放在 editItemTemplate 中的 DataBound 组合框运行得很好,尽管它不需要控件即可使用无参数查询运行
该项目的 DevExpress 版本为 17.1
答:
这可能不是解决问题的最佳方法,但它确实对我有用,所以如果有人有这种工作要做,我会回答这个问题,因为我以前无法在 SO 上找到答案。
我为解决此问题所做的是在项模板中创建一个空的formview元素。我在 Formview 中添加了一个新的项模板,如下所示:
<td class="TableValueCell" colspan="3">
<asp:FormView ID="FormView1" runat="server" DataSourceID="odsStorageAgreement" DataKeyNames="Id">
<ItemTemplate>
<dx:ASPxFormLayout ID="StorageAgreementDisplay" runat="server" ColCount="3" DataSourceID="odsStorageAgreement" EnableTheming="True" Theme="Office2010Silver">
<!-- insert contents here -->
</dx:ASPxFormLayout>
</ItemTemplate>
</asp:FormView>
</td>
在设计视图中,它如下所示:
我肯定会关注,看看是否有人想出自己的解决方案,因为我还没有愚蠢到认为自己是第一个遇到这个问题的人。如果您有其他可能不那么笨拙的替代方案,请告诉我。这是程序设计者自己以前没有遇到过的问题,所以我绝对愿意以某种方式改进事情
评论