首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >asp.net C#使用javascript函数从网格视图中获取选定行

asp.net C#使用javascript函数从网格视图中获取选定行
EN

Stack Overflow用户
提问于 2020-12-03 00:04:18
回答 2查看 50关注 0票数 0

我创建了一个javascript函数来从网格视图中获取选定的行,当我使用BoundField DataField时,它工作得很好,但是当我在网格视图中的ItemTemplate中使用label时,它返回一个值,但带有html代码。

例如,当我使用BoundField DataField时,我会得到这样的结果:

代码语言:javascript
复制
user name 

当我在ItemTemplate中使用label时,我会得到这样的结果:

代码语言:javascript
复制
<span id="gvCustomers_Label4_6">user name</span>

下面是我的代码:

代码语言:javascript
复制
<script type ="text/javascript" >
    function GetSelectedRow(UserLink) {
        var row = UserLink.parentNode.parentNode;
        var Userid = row.cells[1].innerHTML;
        alert(Userid);
        return false;
    }
</script>

下面是网格视图的代码:

代码语言:javascript
复制
<asp:GridView ID="gvCustomers" runat="server" AutoGenerateColumns="false" AllowPaging="true" OnPageIndexChanging="OnPaging">        
    <Columns>
        <asp:TemplateField HeaderText="user name">
            <ItemTemplate>
                <asp:Label ID="Label4" Text='<%#  Eval("user_name")  %>' runat ="server"/>
            </ItemTemplate>
        </asp:TemplateField>

        <asp:TemplateField>
            <ItemTemplate>
                <asp:Button ID="ButtonSearch" runat="server" ClientIDMode="Static"  Text='select'  OnClientClick = "return GetSelectedRow(this)" CommandArgument ='<%# Bind("user_name") %>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-03 03:03:31

如果像元中有多个跨度或其他元素,则可以执行此操作

代码语言:javascript
复制
row.cells[1].getElementsByTagName("span")[0].innerHTML;
票数 1
EN

Stack Overflow用户

发布于 2020-12-03 02:58:19

您需要检查一个子节点,如果存在,则从中获取值。

如下所示:

代码语言:javascript
复制
<script  type ="text/javascript" >
                function GetSelectedRow(UserLink) {
                    var row = UserLink.parentNode.parentNode;
                    var Userid;
                    if(row.cells[1].firstChild) {
                         Userid = row.cells[1].firstChild.innerHTML;
                    } else { 
                         Userid = row.cells[1].innerHTML;
                    }
                    alert(Userid);
                    return false;
                }

      </script>

我还没有测试过这段代码,但它应该会给你一些启发。根据需要进行修改。

此代码样本做了一些假设,这可能会破坏它,因此可能需要更健壮。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65111745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档