3

私の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] 位置の列値。

ハイパーリンク フィールドの値を取得するには、どのような変更を加える必要があると思いますか。助けてください!!

編集: 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>
4

1 に答える 1