将 DevExpress FormLayout 嵌套在 formview 项模板中

Nesting DevExpress FormLayout inside of a formview Item Template

提问人:Wsculley 提问时间:11/2/2023 更新时间:11/2/2023 访问量:34

问:

我正在处理一个项目的新部分,他们希望将附加法案的协议的详细信息显示在 WebForms 项目元素的一个元素中。我遇到以下错误屏幕

在此处输入图像描述

由于我不需要具有完整表单视图的编辑功能,因此我尝试通过将 Dev Express ASPX 表单布局元素嵌套在项模板中来实现此目的,调用隐藏字段的值 (id=“StorageAgreementId”) 来填充排列到布局字段内的布局中的标签集合。

该窗体布局应该在利用对象数据源获取存储帐单信息后调用数据库,该对象数据源直接在标记中的 FormLayout 之后利用项模板内部定义的控件。下面是标记:

我发现与功能相关的部件的标记

到目前为止,这一切都对我来说是有道理的,当我没有为要进行数据绑定的元素设置绑定时,表单布局完全按照我想要的样子出现,所以我知道它不是布局本身。我采取的下一步是选择每个标签,并通过任务上下文菜单应用数据绑定,如下图所示:

ItemTemplate 的图像以及我在其中放置 FormLayout 和它所引用的 ODS 的表的单元格

这是发生错误的时候。我觉得奇怪的是,当协议是表单布局中显示的唯一字段时,不会发生错误(通过注释掉和消除违规部分进行测试)

我主要是一个 MVC 人,所以我不确定缺少什么,或者我是否需要在代码隐藏 (VB.Net) 中做一些特殊的事情,特别是因为我放在 editItemTemplate 中的 DataBound 组合框运行得很好,尽管它不需要控件即可使用无参数查询运行

该项目的 DevExpress 版本为 17.1

asp.net vb.net WebForms DevExpress

评论


答:

0赞 Wsculley 11/2/2023 #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>

在设计视图中,它如下所示:

Design View Solution

我肯定会关注,看看是否有人想出自己的解决方案,因为我还没有愚蠢到认为自己是第一个遇到这个问题的人。如果您有其他可能不那么笨拙的替代方案,请告诉我。这是程序设计者自己以前没有遇到过的问题,所以我绝对愿意以某种方式改进事情