javascript 如何使用jquery获取gridview中标签的文本值
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/13509890/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to get the text value of a label inside a gridview by using jquery
提问by Rajbir Singh
I want to get the text value of label. This label is placed in gridview. Then how i can get it's value on a button click through Jquery. The button is also placed inside the gridview.
我想获取标签的文本值。此标签放置在 gridview 中。然后我如何通过 Jquery 在按钮上获得它的价值。该按钮也放置在 gridview 内。
Here is my code :
这是我的代码:
<asp:GridView ID="gvCustomers" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<asp:Label ID="lblBEid" Text='<%# Eval("BusinessEntityID") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="lblName" Text='<%# Eval("FirstName") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Modified Date">
<ItemTemplate>
<asp:Label ID="lblDate" Text='<%# Eval("ModifiedDate") %>' runat="server" />
<asp:LinkButton ID="lnk" Text="Click Here" runat="server" OnClientClick="getValue();" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Please help me guys. Thanks in advance.
请帮帮我。提前致谢。
回答by Akhil Sekharan
I guess this one will work. But its just raw code. I haven't tested it.
我想这个会奏效。但它只是原始代码。我没有测试过。
//LinkButton
<asp:LinkButton ID="lnk" Text="Click Here" runat="server" OnClientClick="getValue(this);" />
//function
<script type="text/javascript">
function getValue(element){
var tr = $(element).closest('tr');
var ID = $(tr).find('span[id*="lblBEid"]').text();
var Name = $(tr).find('span[id*="lblName"]').text();
var Date = $(tr).find('span[id*="lblDate"]').text();
alert(ID+','+Name+','+Date);
}
</script>
Its better if you can give a css-class to each of your row. Like: RowStyle-CssClass="grid-row"
如果您可以为每一行提供一个 css-class,那就更好了。喜欢:RowStyle-CssClass="grid-row"
Then I can change my code to:
然后我可以将我的代码更改为:
var tr = $(element).closest('.grid-row');
and will be more stable
并且会更稳定
回答by Adil
You need RowDataBoundevent where you can access each row created by asp.net.
您需要RowDataBound事件,您可以在其中访问由 asp.net 创建的每一行。
In code behind
在后面的代码中
protected void gvCustomers_RowDataBound(object sender, GridViewRowEventArgs e)
{
if ((e.Row.RowType == DataControlRowType.DataRow))
{
LinkButton lnk = (LinkButton) e.Row.FindControl("lnk");
Label lblName= (Label) e.Row.FindControl("lblName");
lnk.Attributes.Add("onclick", "getValue(" + lblName.ClientID + ");"
}
}
In javascript
在 JavaScript 中
function getValue(lblId)
{
alert($(lblId).text());
}