2013-05-08 90 views
0

我正在處理FormView
我有一個荒謬的長輸入表單,所以我想知道是否有一種方法,以編程方式將所有控件從ItemTemplate複製到InsertItemTemplate/UpdateItemTemplate,所以我不必重複.aspx中的所有文本框/ DDL等,因爲輸入的信息對於更新/插入都是一樣的(我已經知道我可以複製/粘貼,但.aspx已經夠混亂了)。從ItemTemplate複製控件

我可以設置InsertItemTemplate = ItemTemplate當我設置模式爲插入字段都顯示。問題是,當我在提交事件中嘗試執行FindControl時,我總是得到空值。

回答

0

您可以創建一個user control來保存您的佈局。註冊控制在你的網頁:

<%@ 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參數,因爲它可能是根據所選擇的模式來改變你的控件內的佈局。

+0

謝謝!這正是我所需要的,只是一點想象力 – 2013-05-12 17:54:23

0

如果你把所有的控件放在一個容器中 - 比如一個面板 - 你可以通過面板的.Controls屬性在代碼中獲得它們。遍歷這個,那麼你可以將它們添加到面板中的其他模板...只是一個想法... :)

的foreach(在myItemPanel.controls VAR項目) myInsertPanel.controls.add(項目)

如果您將原始控件嵌套在每個其他控件中,則需要在foreach循環中反映該內容...