繁体   English   中英

使用 jQuery 获取选定行的隐藏列的值

[英]Get values of hidden column for a selected row using jQuery

我有一个带有 1 个隐藏列和 6 个列的网格视图。 当用户单击行内的按钮但它没有选择隐藏列时,我试图获取隐藏列行的值。 它获取第一列的值,即第一个可见列(名字)。

有没有办法获取隐藏列(UserID)的值?

这就是我所拥有的:

C#

<asp:GridView ID="gvUsers" runat="server" AutoGenerateColumns="false" class="table table-bordered" ClientIDMode="Static" DataKeyNames="UserID, Firstname" OnRowCommand="gvUsers_RowCommand" OnRowDeleting="gvUsers_RowDeleting">
    <Columns>
        <asp:BoundField DataField="UserID" Visible="false" HeaderText="UserID" />
        <asp:BoundField DataField="FirstName" HeaderText="First Name" />
        <asp:BoundField DataField="LastName" HeaderText="Last Name" />
        <asp:BoundField DataField="Username" HeaderText="Username" />
        <asp:BoundField DataField="Phone" HeaderText="Cellphone Number" SortExpression="EventDescription" />
        <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="EventDescription" />
        <asp:TemplateField HeaderText="Action">
            <ItemTemplate>
                <asp:Button ID="btnTest" runat="server" Text="Button" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

jQuery:

<script type="text/javascript">
    $(function () {
        $('[id*=btnTest]').on("click", function () {
            var id = $(this).closest("tr").find('td:eq(0)').text();
            alert(id);
            return false;
        });
    });
</script>

请帮助我如何在单击按钮时获取隐藏的列值。 谢谢你。

最简单的方法是将其添加到隐藏的元素中的 TemplateField

<asp:TemplateField>
    <ItemTemplate>
        <span style="display:none"><%# Eval("UserID") %></span>

        <asp:Button ID="btnTest" runat="server" Text="Button" />
    </ItemTemplate>
</asp:TemplateField>

并将脚本修改为

var id = $(this).closest("tr").find('span').html();

更新

正如@Taplar 提到的,您还可以使用属性。 但是您需要在 RowDataBound 事件中添加这些。

if (e.Row.RowType == DataControlRowType.DataRow)
{
    DataRowView row = e.Row.DataItem as DataRowView;

    e.Row.Attributes.Add("data-userid", row["userid"].ToString());
}

脚本将变成

var id = $(this).closest("tr").data('userid');

暂无
暂无

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

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