<asp:TemplateColumn HeaderText="计划数" FooterText="<%=SmallName%>">
 <ItemStyle Width="58px"/>
 <FooterStyle HorizontalAlign="Center" />
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"Eli_P")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtPlan" runat="server" Width="58px" Text=<%# DataBinder.Eval(Container.DataItem,"Eli_P")%>></asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>现在我想实现的是通过一个独立的函数循环的取得模板列每行的值, http://www.cnitblog.com/rd416/archive/2007/07/03/29401.html   这个页面上的方法不适用

解决方案 »

  1.   

    先来分析一下问题,DataGrid行的状态有几种,一种是正常显示,一种是编辑状态,按照搂主的意思正常显现状态下取值,正常显示下搂主没有用控件显示比如lable,但还可以取值的,代码如下,仅供参考:((DataBoundLiteralControl)dg.Items[i].Cells[k].Controls[0]).Text.Trim()i参数第几行,k参数第几列。
    注意:是下面这种绑定数据取值
    <ItemTemplate> 
    <%# DataBinder.Eval(Container.DataItem,"Eli_P")%> 
    </ItemTemplate> 
      

  2.   

    通过一个独立的函数循环的取得模板列每行的值 ?
    如果是DataGrid1可以用下面的代码尝试      for(int i=0;i<DataGrid1.Items.Count;i++)
    {
      Response.Write(DataGrid1.Items[i].Cells[0].Text); //Cells[0]表示dg的0列,后面依次排过去,像Cells[1]
    }
      

  3.   

    谢谢各位啦  
    for(int i=0;i<DataGrid1.Items.Count;i++)
        {
          ((DataBoundLiteralControl)dg.Items[i].Cells[k].Controls[0]).Text.Trim();
        }
    这样就Ok了