获取gridview中选中记录的超链接字段值

Posted

技术标签:

【中文标题】获取gridview中选中记录的超链接字段值【英文标题】:Get the hyperlink field value of the selected record in gridview 【发布时间】:2013-08-13 21:20:18 【问题描述】:

我的 Gridview 在它的列中有一个超链接字段,并且每一行都有复选框。我们可以通过选中复选框来选择任何记录。

问题是:我无法获取超链接字段记录。

执行此操作的代码是:

 for (int i = 0; i < GridView1.Rows.Count; i++)
 
   CheckBox cb = (CheckBox)GridView1.Rows[i].Cells[1].FindControl("myCheckBox");

    if (cb != null && cb.Checked)
    
      String Retailer = GridView1.Rows[i].Cells[0].Text.ToString();
    
  

在 Cells[0] 处存在我的超链接字段。此代码可以访问所有其他字段。当我将代码更改为 GridView1.Rows[i].Cells[2].Text.ToString() 时,我可以在非超链接字段的 Cell[2] 位置获取 Column 值。

为了获得超链接字段值,我应该进行哪些更改。 请帮忙!!

编辑:Gridview 的代码是:

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"        DataKeyNames="Col1"
                    Width="100%"
                    BackColor="#F8ECE0"
                    BorderColor="#8B4513"
                    ShowFooter="false"
                    CellPadding="3"
                    CellSpacing="0"
                    Font-Name="Comic Sans"
                    Font-Size="11pt"
                    HeaderStyle-BackColor="#FFA500"
                    EnableViewState="false"
                    AutoPostBack="true">
                    <Columns>
                        <asp:HyperLinkField DataNavigateUrlFields="Col1" DataNavigateUrlFormatString="Col1.aspx?Name=0" DataTextField="Col1" HeaderText="Col1" />
                        <asp:BoundField DataField="Col2" HeaderText="Col2" SortExpression="Col2" />
                        <asp:BoundField DataField="Col3" HeaderText="Col3" SortExpression="Col3" />
                        <asp:BoundField DataField="Col4" HeaderText="Col4" SortExpression="Col4" />
                        <asp:TemplateField >
                        <ItemTemplate>
                                <asp:CheckBox ID="myCheckBox"  HeaderText="Check to Cancel" runat="server" />
                            </ItemTemplate>
                        </asp:TemplateField>

                    </Columns>
  </asp:GridView>

【问题讨论】:

请给我们看看GridView的代码。 @RuiJarimba 我已经编辑了我的问题并添加了 Gridview 代码 你能显示 ASPX 和包含它的方法吗? 【参考方案1】:

您需要先获取控件类型,然后再获取Text 属性,如下所示:

String Retailer = ((HyperLink)GridView1.Rows[i].Cells[0].Controls[0]).Text;

【讨论】:

以上是关于获取gridview中选中记录的超链接字段值的主要内容,如果未能解决你的问题,请参考以下文章

Access App中的超链接控制

如何取得gridview中选中行中的某一字段

如何使特定列中的 DISPLAYED DATA(int) 成为 GRIDVIEW 中的超链接?

将 gridview 模板字段文本框 id 传递给 javascript 函数

表中的超链接字段不起作用

如何在RowDataBound函数中获取特定列的值?