ClientId导致NullReferenceException

时间:2015-02-25 09:42:22

标签: javascript jquery asp.net

我有一个转发器,其中有一些控件,其中一个是文本框。我试图用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> 

1 个答案:

答案 0 :(得分:1)

由于它是一个ASP.NET repeater控件,因此转发器内的所有控件都会重复自身,因此文本框也会重复,所以你会有Ids附加1,2,等等。因此,最好使用类的文本框,并应用如下函数: -

$('.yourTextboxClassName').click(function() {
   //Your code goes here
   //You can refer to the current textbox using $(this)
});