繁体   English   中英

如何使用jquery获取gridview中标签的文本值

[英]How to get the text value of a label inside a gridview by using jquery

我想获取标签的文本值。 此标签放置在 gridview 中。 然后我如何通过Jquery点击按钮获得它的价值。 该按钮也放置在 gridview 内。

这是我的代码:

 <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>

请帮帮我。 提前致谢。

我想这个会奏效。 但它只是原始代码。 我没有测试过。

    //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>

如果您可以为每一行提供一个 css-class,那就更好了。 喜欢:RowStyle-CssClass="grid-row"

然后我可以将我的代码更改为:

var tr = $(element).closest('.grid-row');

并且会更稳定

您需要RowDataBound事件,您可以在其中访问由 asp.net 创建的每一行。

在后面的代码中

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 + ");"
    }

 }

在 JavaScript 中

function getValue(lblId)
{
     alert($(lblId).text());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM