我已经在代码中创建了一个HTML表格,并将其添加到ASPX页面中的面板控件。
现在我想在javascript中使用它的id来获取表来实现表分类器。
$(document).ready(function () {
$("myTable").tablesorter();
});
它没有识别我在Codebehind中创建的mytable控件:
HtmlTable Table= new HtmlTable();
Table.ID = "NavTable";
请尝试多种方式帮助我,但没有任何工作。
提前致谢
答案 0 :(得分:2)
你有几个选择。基本思想是在您可以找到的地方输出感兴趣的控件的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();
});
答案 1 :(得分:1)
您的示例包含不同的ID myTable
和NavTable
。如果你想通过id选择,你使用了错误的选择器。您的选择器必须如下所示:
$("#NavTable").tablesorter();
所以你忘记了选择器值的锐利。
答案 2 :(得分:1)
这里有几个问题。
您尝试从javascript引用“myTable”,并将其命名为“NavTable”。
在jQuery中通过id引用html元素需要一个#
来告诉jQuery选择器是一个ID而不是一个html标记名。
为了确保ASP.NET不在HTML输出中使用其他ID,您应该从您在C#中创建的ASP.NET服务器端对象中获取ClientID
值(可能会发生) if是在ASP.NET用户控件中声明的。)
代码将如下所示:
$(document).ready(function () {
$("#<%=Table.ClientID%>").tablesorter();
});
为此,您还需要将Table
变量声明为类中的成员,以便设计代码在范围内看到它。否则,只能在您创建它的方法中访问它。
如果您知道这将始终生成您指定的实际ID,您可以在javascript中对其进行硬编码,如下所示:
$(document).ready(function () {
$("#NavTable").tablesorter();
});