按照 MSDN的说法,GridView 控件将其所有数据行都存储在 Rows 集合中。
通过使用 Rows的Cells 属性,可以访问 GridViewRow 对象的单独单元格。
如果某个单元格包含其他控件,则通过使用单元格的 Controls 集合,可以从单元格检索控件。 如果控件指定了 ID,还可以使用单元格的 FindControl 方法来查找该控件。
若要从 BoundField 字段列或自动生成的字段列检索字段值,请使用单元格的 Text 属性。例如:
- string value= GridView1.Rows[rowIdx].Cells[colIdx].Text;
若要从将字段值绑定到控件的其他字段列类型检索字段值,请先从相应的单元格检索控件,然后访问该控件的相应属性。
- <asp:Label runat="server" Text='<%# Bind("Quantity") %>' id="Label1">
- </asp:Label>
- ...
- Label Label1= (Label)GridView1.Rows[rowIdx].Cells[colIdx].FindControl("Label1");
- if (Label1!= null){
- // 读取 Label1.Text
- }
对于TemplateField 字段列,可以直接使用数据绑定表达式,无需将值绑定到控件的某个属性。 在这种情况下,字段值将自动放置在 DataBoundLiteralControl 控件中。 若要检索字段值,必须先从相应单元格检索 DataBoundLiteralControl 控件,然后再使用其 Text 属性。例如:
- string value = ((DataBoundLiteralControl)GridView1.Rows[rowIdx].Cells[colIdx].Controls[0]).Text;