C# 从ItemTemplate复制控件

C# 从ItemTemplate复制控件,c#,asp.net,C#,Asp.net,我正在处理FormView 我有一个可笑的长输入表单,所以我想知道是否有一种方法可以通过编程将所有控件从ItemTemplate复制到InsertItemTemplate/UpdateItemTemplate,这样我就不必重复.aspx中的所有文本框/ddl等,因为输入的信息对于更新/插入都是相同的(我已经知道我可以复制/粘贴,但是.aspx已经够乱了) 我可以设置InsertItemTemplate=ItemTemplate,当我设置插入模式时,所有字段都会显示出来。问题是,当我尝试在subm

我正在处理
FormView

我有一个可笑的长输入表单,所以我想知道是否有一种方法可以通过编程将所有控件从
ItemTemplate
复制到
InsertItemTemplate/UpdateItemTemplate
,这样我就不必重复
.aspx
中的所有文本框/ddl等,因为输入的信息对于更新/插入都是相同的(我已经知道我可以复制/粘贴,但是
.aspx
已经够乱了)


我可以设置
InsertItemTemplate=ItemTemplate
,当我设置插入模式时,所有字段都会显示出来。问题是,当我尝试在submit事件中执行
FindControl
时,我总是得到空值。

如果你将ItemTemplate中的所有控件放入一个容器(比如一个面板),你可以在code thr中找到它们通过panels.Controls属性,您可以将它们添加到其他模板中的面板中…这只是一个想法…:)

foreach(myItemPanel.controls中的变量项) myInsertPanel.controls.add(项)

如果已将原始控件嵌套在彼此内部,则需要在foreach循环中反映这一点…

您可以创建一个用于保存布局的控件。在您的网页中注册控件:

<%@ Register TagPrefix="ctrl" TagName="FormControl" Src="FormControl.ascx" %>

我添加了一个
Mode
参数,因为它可以根据所选模式更改控件内部的布局。

谢谢!这正是我所需要的,只是一点想象力
<asp:FormView ID="FormView1" runat="server" 
DataSourceID="ObjectDataSource1" 
AllowPaging="True" EnableViewState="False">

  <ItemTemplate>
    <ctrl:FormControlID="MyControl1" runat="server" Mode="Item"/>
  </ItemTemplate>
  <InsertItemTemplate>
    <ctrl:FormControlID="MyControl2" runat="server" Mode="InsertItem"/>
  </InsertItemTemplate>
</FormView>