2009-05-18 55 views
0

我有一箇中繼器控件,其中包含一個包含數據綁定標籤和DropDownList控件的ItemTemplate。每次迭代時,我都想在每次迭代時更改DropDownList的ID,以便在提交時將值用作輸入。誰能告訴我這通常是怎麼完成的?謝謝。更改中繼器內部的WebControl屬性

回答

1

這是爲您自動完成的,請參閱Using the NamingContainer Property to Determine a Control's Naming Container以瞭解其工作原理的詳細信息。

我想這可能不是你正在尋找的東西。爲了從下拉列表中獲取值,您應該遍歷中繼器中的項目,並使用FindControl方法根據您指定的ID查找下拉列表。

foreach(RepeaterItem item in repeater1.Items) { 
    DropDownList dropdown = (DropDownList)item.FindControl("DropDownList1") 
    //dropdown.SelectedValue 
} 

編輯:根據您的評論,我不會將下拉列表重命名爲數據庫中的ID。相反,你應該在你的中繼器中放置一個隱藏的文字控制。將其值設置爲數據庫記錄的ID。然後以與獲取下拉列表的值相同的方式獲取ID。

(Literal)item.FindControl("ListeralWithDataBaseId") 

你的ASPX標記看起來像這樣

<asp:Literal runat="server" id="ListeralWithDataBaseId" 
    Value='<%# Eval("Id")' %> Visible="false" /> 
+0

是的,我的目的是要求我在每次迭代時指定ID,這樣當表單提交時,我可以使用這些ID來設置數據庫表中的值。 – 2009-05-18 19:42:04

0

我發現最簡單的只是把一個佔位符中Repeater,然後創建在設計時DropDownList控件,而不是試圖建立一個在設計時並在迭代時更改ID。

相關問題