当我点击行中的任何位置时,我正试图在asp.net网格视图的行内找到标签的文本。我有下面显示的gridview和我正在使用的jquery。当我点击该行时,我收到了一个javascript警告框,只是没有文字。我做错了什么?
<asp:GridView runat="server" ID="grvAgents" AutoGenerateColumns="False" OnRowDataBound="grvAgents_OnRowDataBound"
CssClass="table table-bordered table-striped" AlternatingRowStyle-CssClass="even"
ClientIDMode="Static">
<AlternatingRowStyle CssClass="even" />
<Columns>
<asp:TemplateField HeaderText="Site" Visible="false">
<ItemTemplate>
<asp:Label ID="lblSite" CssClass="siteLbl" runat="server" Text='<%#Eval("Site") %>' ClientIDMode="Static"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<script type="text/javascript">
function BindEvents() {
$(document).ready(function (e) {
$('#grvAgents tr').click(function () {
var tr = $(this).closest('tr');
var lbl = tr.find('.siteLbl').text();
alert(lbl);
//
});
});
}
</script>
答案 0 :(得分:1)
我没有看到您的代码不起作用的原因。不过,您可以通过使用id
而不是class
名称引用标签来尝试替代方案。
$(function ()
{
$('#grvAgents tr').click(function () {
var lbl = $(this).closest('tr').find('span[id*="lblSite"]').text();
alert(lbl);
});
});
答案 1 :(得分:0)
试试这个
$(function ()
{
$('#grvAgents tr').click(function () {
alert($(this).find('.siteLbl').text());
});
});
答案 2 :(得分:0)
因为你设置了TemplateField Visible =&#34; false&#34;所以它无法在输出html中找到。 您可以通过css隐藏控件:
<强>风格强>
<style type="text/css">
.hid
{
display:none;
}
</style>
<强>模板列强>
<asp:TemplateField HeaderText="Site" HeaderStyle-CssClass="hid" ItemStyle-CssClass="hid">
再试一次。