在DataGrid中,获取指定单元格的值的用法大致为:this.Label1 .Text = ((TextBox)mygrid.Items [0].Cells [13].Controls [0]).Text ;
this.Label2 .Text = mygrid.Items [0].Cells [4].Text ;
这里只是举个例子,具体情况具体而定(数据类型)
但是在我的DataGrid中,这样做却获取不到任何值,不知道为什么.我的DataGrid是这样写的:
<asp:datagrid id="DataGrid1" runat="server" Width="944px" AutoGenerateColumns="false" AllowPaging="True" OnPageIndexChanged="DataGrid1_PageIndexChanged" DataKeyField="XH">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="选择">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:CheckBox ID="checkbox1" Runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="学号">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:HyperLink ID="NewsTitle1" Text='<%# DataBinder.Eval(Container.DataItem,"XH") %>' NavigateUrl='<%# "XHXSJBXX.aspx?XH="+DataBinder.Eval(Container.DataItem,"XH").ToString() %>' Target="YongHuQu" Runat=server />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="姓名">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:Label ID="Hyperlink1" Text='<%# DataBinder.Eval(Container.DataItem,"XM") %>' Runat=server />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="学校分部">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:HyperLink ID="Hyperlink2" Text='<%# DataBinder.Eval(Container.DataItem,"FBDM") %>' NavigateUrl='<%# "FBDMXSJBXX.aspx?FBDM="+DataBinder.Eval(Container.DataItem,"FBDM").ToString() %>' Target="YongHuQu" Runat=server />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="年级">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:Label Runat ="server" Text='<%# DataBinder.Eval(Container.DataItem, "NJBH") %>' ID="Label38"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="班级">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:HyperLink ID="Hyperlink3" Text='<%# DataBinder.Eval(Container.DataItem,"BJBH") %>' NavigateUrl='<%# "BHXSJBXX.aspx?BJBH="+DataBinder.Eval(Container.DataItem,"BJBH").ToString() %>' Target="YongHuQu" Runat=server />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="学年">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:Label Runat ="server" Text='<%# DataBinder.Eval(Container.DataItem, "XN") %>' ID="Label1"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="学期">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:Label Runat ="server" Text='<%# getxq(DataBinder.Eval(Container.DataItem, "XQM").ToString()) %>' ID="Label2"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="考试名称">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:Label Runat ="server" Text='<%# DataBinder.Eval(Container.DataItem, "KSMC") %>' ID="Label3"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="考试日期">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:Label Runat ="server" Text='<%# DataBinder.Eval(Container.DataItem, "KSRQ") %>' ID="Label4"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="课程名称">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:Label Runat ="server" Text='<%# DataBinder.Eval(Container.DataItem, "KCMC") %>' ID="Label5"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="分数成绩">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:Label Runat ="server" Text='<%# DataBinder.Eval(Container.DataItem, "FSLKSCJ") %>' ID="Label8"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="等级成绩">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:Label Runat ="server" Text='<%# DataBinder.Eval(Container.DataItem, "DJLKSCJ") %>' ID="Label9"/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Mode="NumericPages"></PagerStyle>
</asp:datagrid>
请各位多多帮忙,小弟感激不尽,谢谢!

解决方案 »

  1.   


    this.Label1 .Text = ((Label)mygrid.Items [0].FindControl("Label4")).Text;
      

  2.   

    Label myLabel = (Label)mygrid.Items[i].FindControl("Label4");
    string temp = myLabel.Text;
      

  3.   

    参考
    http://popbbs.yesky.com/topic/816/1241138.html
      

  4.   

    ((TextBox)mygrid.Items [0].Cells [13].Controls [0]).Text 有些参数肯定无效.
      

  5.   

    for( int i = 0; i < dtgArticle.Items.Count; i++ )
    {
        Response.Write(dtgArticle.Items[i].Cells[0].Text);//Cells[0]是指的一列,别的列自己去数吧
    }
      

  6.   

    string test = ((TextBox) DataGrid1.Items[sl].Cells[9].FindControl("TextBox2")).Text;
      

  7.   

    Label myLabel = (Label)mygrid.Items[i].FindControl("Label4");
    string temp = myLabel.Text;