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>