日期:2014-05-18  浏览次数:20512 次

关于获取GridView模版列绑定值的问题,还请高手指导.
我在绑定一个GridView的时候,里面添加了一个绑定列,并用Eval()方法进行了绑定
为什么我取不到它的值?自动绑定列的值却可以取到.谁能帮帮我啊。
                <asp:GridView   ID= "GridView1 "   runat= "server "   Width= "100% ">
                        <Columns>
                                <asp:TemplateField   HeaderText= "123 ">
                                <ItemTemplate>
                                <%#   Eval( "Weight ")%>
                                </ItemTemplate>
                               
                                </asp:TemplateField>
                        </Columns>
                </asp:GridView>
            </div>
                <asp:Label   ID= "Label1 "   runat= "server "   Text= "Label "> </asp:Label>
   

protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                shopCart   myCart   =   new   shopCart();
                DataTable   dt   =   myCart.getMyCart(9);
                this.GridView1.DataSource   =   dt.DefaultView;
                this.GridView1.DataBind();
                this.Label1.Text   =   this.GridView1.Rows[0].Cells[0].Text;


        }



------解决方案--------------------
GridView1.Rows[0].Cells[0]写法不适用于模板列

要使用 GridView1.Rows[0].FindControl( "x ")

例子

<%@ Page Language= "C# "%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN "
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">

<script runat= "server ">
// 计算数据,完全可以从数据看取得
ICollection CreateDataSourceByXianhuiMeng()
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn( "学生班级 ", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn( "学生姓名 ", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn( "语文 ", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn( "数学 ", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn( "英语 ", typeof(System.Decimal)));
dt.Columns.Add(new S