我做了一個菜單列表。它由兩個中繼器組成,一箇中繼器和productType,另一箇中間器件包含該產品類型的內容。 可以在文本框中輸入您想要的內容數量,現在我想查找文本框及其內容。查找另一箇中繼器內的中繼器內的文本框
這是我的ASP.NET代碼看起來像:
<asp:Repeater ID="ParentRepeater" runat="server" OnItemDataBound="ParentRepeater_ItemDataBound">
<ItemTemplate>
<h2>
<%#DataBinder.Eval(Container.DataItem, "typenavn") %></h2>
<asp:HiddenField ID="HiddenField1" Value='<%# Eval("id") %>' runat="server" />
<asp:Repeater ID="ChildRepeater" runat="server">
<ItemTemplate>
<table>
<tr>
<td style="width: 400px">
<%#DataBinder.Eval(Container.DataItem, "productName") %>
</td>
<td style="width: 400px">
<%#DataBinder.Eval(Container.DataItem, "pris") %>
</td>
<td>
<asp:HiddenField ID="HiddenField2" runat="server" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
這是我試圖到目前爲止做:
Repeater ChildRepeater;
foreach (RepeaterItem item1 in ParentRepeater.Items)
{
if (item1.ItemType == ListItemType.Item || item1.ItemType == ListItemType.AlternatingItem)
{
ChildRepeater = (Repeater)item1.FindControl("ChildRepeater");
foreach (RepeaterItem item2 in ChildRepeater.Items)
{
if (item2.ItemType == ListItemType.Item || item2.ItemType == ListItemType.AlternatingItem)
{
TextBox txt = (TextBox)item2.FindControl(("MainContent_ParentRepeater_ChildRepeater_0_HB1_0")) as TextBox; // MainContent_ParentRepeater_ChildRepeater_0_HB
}
}
}
break;
}
首先進入的parentrepeater和進入它的chilrepeaters。 但它不能找到我的文本框。
任何機構都有什麼想法?
你有什麼你的ViewState設置爲..它是假的..如果是這樣嘗試使它ViewState = true;還有什麼EventHandler你檢查這.. ..? – MethodMan 2012-01-07 19:31:55
看起來你應該試圖找到與TextBox TextBox txt = item2.FindControl(「TextBox1」)的文本框; - 不知道你從哪裏獲得'MainContent_ParentRepeater_ChildRepeater_0_HB1_0'? – TheGeekYouNeed 2012-01-08 12:36:45