繁体   English   中英

如何在Javascript或JQuery中获取Gridview中的选定行

[英]How do I get the selected row in Gridview in Javascript or JQuery

让我详细说明......下面是我的部分gridview与按钮字段...我想要的是用于构建网址的按钮的文本值:

<asp:GridView CssClass="gridUser" ID="UsersGrid" ClientIDMode="Static" runat="server" AllowPaging="true" AllowSorting="true" PageSize="5" OnPageIndexChanging="PageIndexChange" OnRowCommand="Paging" OnSorting="SortPage" OnRowCreated="RowCreated"
                AutoGenerateColumns="false">

                <PagerSettings Mode="NextPreviousFirstLast" FirstPageImageUrl="~/Images/Navigation/firstpageIcon.png" LastPageImageUrl="~/Images/Navigation/lastpageIcon.png"
                    NextPageImageUrl="~/Images/Navigation/forwardOneIcon.png" PreviousPageImageUrl="~/Images/Navigation/backOneIcon.png" Position="Bottom" />

                <Columns>
                    <asp:TemplateField HeaderText="User Name" HeaderStyle-CssClass="gridHeader">
                        <ItemTemplate>
                           <asp:Button ID="UserLink" ClientIDMode="Static" runat="server" Text='<%#Eval("UserName") %>' CssClass="linkButton" OnClientClick = "return GetSelectedRow(this)"></asp:Button>
                    </ItemTemplate>
                        </asp:TemplateField>

这是我的javascript:

 $(".linkButton").click(function () {
        var ul = document.getElementById('UserLink');
        var row = ul.parentNode.parentNode;
        var rowIndex = row.rowIndex - 1;
        var Userid = row.cells[0].childNodes[1].value;
        var User = Userid;
        alert("Row is : " + row + "RowIndex is : " + rowIndex + "User ID is " + User);
    });

我的问题是我返回的行是第一行...而不是选定的行...如何获取所选行? 谢谢你的帮助。

试试这个...根据您的要求更改命名约定

<script type = "text/javascript">
        function GetSelectedRow(UserLink) {
            var row = UserLink.parentNode.parentNode;
            var rowIndex = row.rowIndex - 1;
            var Userid = row.cells[0].innerHTML;
            alert("RowIndex: " + rowIndex + " Userid : " + Userid + ");
            return false;
        }
    </script>

您的第一个问题是,在您的按钮模板列中,您使用的是Id=UserLink ,它将在每行中重复出现。 您的元素ID应该是唯一的。 有关详细信息,请参阅此答案

你的第二个问题是document.getElementById('UserLink'); 实际上会找到第一个ID为UserLink元素,它始终是第一行。 在你的情况下,你可以我们var ul = this; 这应该给你实际点击的按钮。

总结一下:

  • 我建议你在按钮上骑id或者让它们与众不同。
  • document.getElementById('UserLink')更改this ,这将为您提供单击的按钮。

暂无
暂无

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

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