C# 如何使用Javascript查找动态生成的控件?

C# 如何使用Javascript查找动态生成的控件?,c#,javascript,tablesorter,C#,Javascript,Tablesorter,我已经在代码隐藏中创建了一个HTML表,并将其添加到ASPX页面的面板控件中 现在,我想在javascript中使用表的id来实现表分类器 $(document).ready(function () { $("myTable").tablesorter(); }); 它不是识别我在Codebehind中创建的mytable控件: HtmlTable Table= new HtmlTable(); Table.ID =

我已经在代码隐藏中创建了一个HTML表,并将其添加到ASPX页面的面板控件中

现在,我想在javascript中使用表的id来实现表分类器

   $(document).ready(function () {
        $("myTable").tablesorter();
    });  
它不是识别我在Codebehind中创建的mytable控件:

       HtmlTable Table= new HtmlTable();        
       Table.ID = "NavTable";
请帮助我尝试了很多方法,但都没有效果


提前感谢

您的示例包含不同的ID myTable和NavTable。如果要按id选择,则使用的选择器不正确。您的选择器必须如下所示:

$("#NavTable").tablesorter();

因此,您忘记了选择器值中的夏普。

您的示例包含不同的ID myTable和NavTable。如果要按id选择,则使用的选择器不正确。您的选择器必须如下所示:

$("#NavTable").tablesorter();

因此,您忘记了选择器值中的夏普。

您有几个选择。基本思想是将感兴趣的控件的ClientID输出到您可以找到它的地方

例如:

$(document).ready(function () {
    $("#<%=this.TableControl.ClientID%>").tablesorter();
}); 
或者:如果您在ASP.NET 4.5环境中,可以将ClientIDMode设置为Static,并直接在脚本中硬编码。不过,请注意,如果您引入了ID冲突,ASP.NET将拍打您的手腕

<asp:Grid ClientIDMode="Static" ID="my_static_table_id" />
$(document).ready(function () {
    $("#my_static_table_id").tablesorter();
}); 

你有几个选择。基本思想是将感兴趣的控件的ClientID输出到您可以找到它的地方

例如:

$(document).ready(function () {
    $("#<%=this.TableControl.ClientID%>").tablesorter();
}); 
或者:如果您在ASP.NET 4.5环境中,可以将ClientIDMode设置为Static,并直接在脚本中硬编码。不过,请注意,如果您引入了ID冲突,ASP.NET将拍打您的手腕

<asp:Grid ClientIDMode="Static" ID="my_static_table_id" />
$(document).ready(function () {
    $("#my_static_table_id").tablesorter();
}); 

这里有几个问题

您尝试从javascript引用myTable,并将其命名为NavTable

在jQuery中通过id引用html元素需要在开始时使用一个标记来告诉jQuery选择器是一个id而不是html标记名

为了确保ASP.NET在HTML输出中不使用其他id,您应该从ASP.NET服务器端对象中获取ClientID值,如果在ASP.NET用户控件中声明,则可能会发生这种情况

代码将如下所示:

$(document).ready(function () {
    $("#<%=Table.ClientID%>").tablesorter();
});
$(document).ready(function () {
    $("#NavTable").tablesorter();
});

这里有几个问题

您尝试从javascript引用myTable,并将其命名为NavTable

在jQuery中通过id引用html元素需要在开始时使用一个标记来告诉jQuery选择器是一个id而不是html标记名

为了确保ASP.NET在HTML输出中不使用其他id,您应该从ASP.NET服务器端对象中获取ClientID值,如果在ASP.NET用户控件中声明,则可能会发生这种情况

代码将如下所示:

$(document).ready(function () {
    $("#<%=Table.ClientID%>").tablesorter();
});
$(document).ready(function () {
    $("#NavTable").tablesorter();
});