Lea*_*ode 3 c# asp.net checkbox gridview
我的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();
}
}
Run Code Online (Sandbox Code Playgroud)
在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>
Run Code Online (Sandbox Code Playgroud)
你需要首先获得控件类型,然后是Text属性,如下所示:
String Retailer = ((HyperLink)GridView1.Rows[i].Cells[0].Controls[0]).Text;
Run Code Online (Sandbox Code Playgroud)