我在ASP中有一个jQuery函数,试图获取其客户端ID。当它呈现HTML时,我得到了这个结果。
[HTML渲染]
$("")//ctl00_Content_gvProgramList
.tablesorter({ widthFixed: true, widgets: ['zebra'],
widgetOptions: {
zebra: ["even", "odd"]
}
})
.tablesorterFilter({ filterContainer: $("#filter-box"),
filterClearContainer: $("#filter-clear-button"),
filterColumns: [0, 1, 2, 3],
filterCaseSensitive: false
})
.tablesorterPager({ container: $("#pager") });
[隐藏代码]
$("<%# gvProgramList.ClientID %>")//ctl00_Content_gvProgramList
.tablesorter({ widthFixed: true, widgets: ['zebra'],
widgetOptions: {
zebra: ["even", "odd"]
}
})
.tablesorterFilter({ filterContainer: $("#filter-box"),
filterClearContainer: $("#filter-clear-button"),
filterColumns: [0, 1, 2, 3],
filterCaseSensitive: false
})
.tablesorterPager({ container: $("#pager") });
如果我使用
ct100_Content_gvProgramList
,所有的javascript作品都应该如此,所以请不要发布任何与此相关的答案。我想要一个有关如何使ClientID
正确显示的答案。更新
我想使用
$('#<%= gvProgramList.ClientID %>')
,但出现错误。The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
Line 16: Head.Controls.Add(Header())
Line 17: Head.Controls.Add(Menu())
Line 18: Foot.Controls.Add(Footer())
最佳答案
采用:
<%= ... %>
代替:
<%# ... %>
所以:
$('#<%= gvProgramList.ClientID %>') ...
更新后
由于您要尝试在
Response.Write()
(<%= ... %>
)中隐藏/隐藏代码,因此在aspnet背后的代码中正在构建/修改控件集合。尝试使用类名代替控件的id
。要么:
将
<script> ... </script>
包裹在<asp:placeholder>
中。这将使脚本成为占位符的子级,而不是导致错误的服务器端控件。关于jquery - 为什么没有显示ClientID?怎么修,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10903973/