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?