果4点儿

我边学边干,在IT世界闯荡.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2009-04-11 19:20  果4点儿  阅读(2839)  评论(4编辑  收藏  举报

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?