0

我正在处理FormView。我有一个荒谬的长输入
表单,所以我想知道是否有办法以编程方式将所有控件复制ItemTemplate到更新 /Insert(我已经知道我可以复制 /paste,但已经够乱了)。InsertItemTemplate/UpdateItemTemplate.aspx.aspx

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

4

2 回答 2

0

如果您将 ItemTemplate 中的所有控件放入容器(例如面板)中,则可以通过该面板的 .Controls 属性在代码中访问它们。对此进行迭代,您可以将它们添加到其他模板中的面板中......只是一个想法...... :)

foreach (var item in myItemPanel.controls) myInsertPanel.controls.add(item)

如果您将原始控件相互嵌套,则需要在 foreach 循环中反映它...

于 2013-05-08T18:57:36.967 回答
0

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

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

并将其添加到FormView

<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>

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

于 2013-05-09T02:19:24.500 回答