【发布时间】:2013-04-19 16:39:09
【问题描述】:
我正在寻找模板化用户控件的最佳方式,以便当我指定模式时说只读、编辑、更新、插入,然后用户控件会相应地更改其模式。
我已经确定了一些方法,我正在寻找一个非常优雅的解决方案。
在页面中创建表单视图并将插入、编辑模板指定为 单独的用户控件并相应地加载。
在用户控件内创建表单视图并指定单独的控件 用于编辑/插入记录。
-
找到一种方法来模板化用户控件,这样当我指定 模式,当初始化用户控件时,它将适当地加载到 页面。
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <asp:FormView DefaultMode="ReadOnly" ID="FormView1" runat="server"> <ItemTemplate> <name:user ID="User1" Visible="true" runat="server" /> </ItemTemplate> <EditItemTemplate> <name:user ID="User2" Visible="true" runat="server" /> </EditItemTemplate> </asp:FormView>
请分享您对在正常情况下如何做到这一点的看法;只有一个用户控件和用户控件根据模式更改状态(单个用户控件而不是 3 个用户控件的功能)。
【问题讨论】:
-
您可以使用查询字符串
?mode=insert并从用户控件中读取,然后相应地切换模式 -
@DGibbs 谢谢。这样,我将不得不将所有(控件)编辑/插入只读布局到控件中并相应地切换。无论如何,其中基于用户控件,说它会加载正确的控件而无需额外的标记?
-
唯一的其他方法是将模式分成不同的用户控件并根据模式在父页面上隐藏/显示。
-
@DGibbs 我理解你的意思,我的想法与 FormView 中的 EditTemplates 类似,它将加载编辑模板,我的理解是它会自动加载编辑控件。我认为我错了,所以我可能需要相同的用户控件和单独的用户控件编辑/插入/更新逻辑
标签: c# asp.net optimization user-controls web-user-controls