我有一个转发器,其中有一些控件,其中一个是文本框。我试图用jquery获取文本框,我的代码看起来像这样:
$("#<%= ((TextBox)myRpt.FindControl("tbText")).ClientID %>").click(function (event) {});
但我总是得到nullReferenceException。 任何人都知道可能导致这种情况的原因是什么?
转发器看起来与此相似:
<asp:Repeater ID="myRpt" runat="server" onitemdatabound="myRpt_ItemDataBound">
<HeaderTemplate> </HeaderTemplate>
<ItemTemplate> /*some controls*/
<td id="tdX" runat="server">
<asp:TextBox ID="tbText" runat="server" ClientIDMode = "Static"></asp:TextBox>
</td>
</ItemTemplate>
</asp:Repeater>
答案 0 :(得分:1)
由于它是一个ASP.NET repeater
控件,因此转发器内的所有控件都会重复自身,因此文本框也会重复,所以你会有Ids附加1,2,等等。因此,最好使用类的文本框,并应用如下函数: -
$('.yourTextboxClassName').click(function() {
//Your code goes here
//You can refer to the current textbox using $(this)
});