关于GridView中各种列后台取值的方法

1.GridView中默认的是BoundField在后台可用GridView1.Rows[0].Cells[0]来取值。

2.如果是其他列如HyperLinkField,ButtonField,CheckBoxField则要在后台进行转化。

转化方法如下:

((HyperLink)GridView1.Rows[RowIndex].Cells[0].Controls[0]).Text

对应的Field转化为相应的类型,简单的方法就是Field的类型名如ButtonField去掉Field就OK了

3.模板列:

        <asp:TemplateField HeaderText="取消原因" >
                        <ItemTemplate>            
                            <asp:TextBox ID="txtCnclRsn"  runat="server"></asp:TextBox>
                        </ItemTemplate>
       </asp:TemplateField>

  此时后台取值如下:

 string reason = ((TextBox)GridView1.Rows[RowIndex].FindControl("txtCnclRsn")).Text.Trim();

也是转化为相应的类型。

至于为什么2中要用Contorls来取,就感到奇怪,难道一个Cell中可以放多个对应的Field?

 

你可能感兴趣的:(GridView)