我之前问过你的问题,但是我无法让它发挥作用。我想,我需要你的帮助。
<asp:ListView runat="server" ID="listvsl">
<ItemTemplate>
<td>
<img style="width: 100%; height: 150px;" src="<%#Eval("resim") %>" /><br />
<asp:Button ID="in" runat="server" Text="Sol" ClientIDMode="Inherit" OnClick="haraket" Style="width: 75px;" />
<asp:Button ID="cik" OnClick="haraket" runat="server" Text="Sağ" Style="width: 75px;" /><br />
<asp:Button ID="Button10" runat="server" Text="Sil" OnClick="sil_Clickice" Style="width: 150px;" /><br />
<asp:TextBox ID="aciklax" runat="server" TextMode="MultiLine" ClientIDMode="Inherit" /><br />
<asp:Button ID="Button12" runat="server" Text="Güncelle" ClientIDMode="Inherit" OnClick="yazignc" />
</td>
</ItemTemplate>
</asp:ListView>
当我点击“Button12”时,我需要使用FindControl获取
aciklax
TextBox
Button bu = (Button)sender;//Button12's onclick event
string[] falanca = bu.ClientID.ToString().Split('_');
string alcez = falanca[0] + "_" + falanca[1] + "_" + "aciklax" + "_" + falanca[3];
这是我找到ClientId的方法。我得到了ClientId,但我无法使用它来获取TextBox控件。你能救我吗?
答案 0 :(得分:1)
幸运的是,您不需要解析ClientID
来查找TextBox控件。您可以使用按钮的NamingContainer
属性来查找相应的ListView项。然后,您可以使用ItemTemplate中指定的原始ID找到项目中的TextBox:
Button btn = sender as Button;
ListViewItem item = btn.NamingContainer as ListViewItem;
TextBox txt = item.FindControl("aciklax") as TextBox;