.NET 4.5 WebForms:我(仍然)真的必须在FormView中指定所有3个模板吗?

Mer*_*nzo 6 asp.net webforms dynamic-controls model-binding asp.net-4.5

研究ASP.NET 4.5 WebForms中新的强类型,模型绑定方法:

Scott Hanselman的 WebForms模型绑定示例(以及其他)中,我看到使用在"编辑"模式下打开的FormView,其中包含一些DynamicControls 例如

<asp:FormView runat="server" ID="MyForm" ... DefaultMode="Edit">
  <EditItemTemplate>
    <asp:DynamicControl runat="server" ID="Field1" DataField="Field1" Mode="Edit" />
    <asp:DynamicControl runat="server" ID="Field2" DataField="Field2" Mode="Edit" />
  </EditItemTemplate>
</asp:FormView> 
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我的FormView ItemTemplate,EditItemTemplate并且InsertItemTemplate将是相同的,除了ItemTemplate的控件将处于"ReadOnly"模式.

我(仍)确实需要在FormView中提供三个几乎完全相同的模板副本吗?

我很高兴使用DynamicControls,但是这里的团队永远不会采用FormView所需的"3x复制粘贴"方法,特别是对于我们的大型模板.

我原以为可能:

  • DynamicControls可以从包含FormView获取"模式"吗?
  • 我可以使用FormView以外的东西来包含我的DynamicControls?
  • 我应该在代码隐藏中管理DynamicControls的模式以避免模板重复吗?

任何例子/想法?

thu*_*ird 0

只需设置 AutoGenerateEditButton="true"。然后,项目模板中的所有输入类型都将是可编辑的。您可能必须使用 jQuery 显示/隐藏文本框和其他输入类型的边框。