CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

请大家来看一段小代码!能找一找错吗?

楼主David_du(流川枫)2005-04-04 09:47:55 在 .NET技术 / ASP.NET 提问

从DataGrid1中取出数据到DataTable在DataGrid2中显示  
   
  private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
  DataTable   t   =   new   DataTable();  
  t.Columns.Add("id");  
  t.Columns.Add("name");  
   
  for(int   i=0;i<DataGrid1.Items.Count;i++)  
  {  
   
  DataRow   dr   =   t.NewRow   ();  
  for(int   j=0;j<DataGrid1.Columns.Count;j++)  
  {  
  dr[j]   =   DataGrid1.Items[i].Cells[j].Text;  
  }  
   
  t.Rows.Add(dr);  
   
  }  
   
  DataGrid2.DataSource   =   t.DefaultView;  
  DataGrid2.DataBind();  
  }  
  原以为代码对的,谁知用了没有取到数据,但是取的行数对了!里面全是空!!!  
  我是想要取得DataGrid1里面的数据放进一个DataTable里面而已! 问题点数:50、回复次数:15Top

1 楼fayewang(飞狐)回复于 2005-04-04 09:52:32 得分 1

你的t.Columns.Add("id",后面的数据类型加上去试一试)Top

2 楼David_du(流川枫)回复于 2005-04-04 09:57:32 得分 0

不行呀,会报错,编都过不去!Top

3 楼conner(测试)回复于 2005-04-04 09:58:40 得分 1

当你单击此按钮的时候是不是DataGrid1的数据已经不存在了,是不是要先给DataGrid1先绑定一下。Top

4 楼David_du(流川枫)回复于 2005-04-04 10:05:30 得分 0

不是呀,之前DataGrid1里面已经有数据了,而且按按钮的时间可以看到DataGrid1里面有数据!Top

5 楼maxxxz(ma)回复于 2005-04-04 10:15:49 得分 1

foreach(DataGridItem   item   in   DataGrid1.Items)   //Items   是一行数据,包括中间的控件  
  {  
  Textbox   textboxTmp   =   (Textbox)item.FindControl("Textbox1");//你放id的那个控件的名称  
                                                                            DataRow   dr   =   t.NewRow   ();  
  if(textboxTmp   !=null)  
  {  
                                                                                  dr["id"]=textboxTmp.Text;  
  }  
                                                                          textboxTmp   =   (Textbox)item.FindControl("Textbox2");  
                                                                          if(textboxTmp   !=null)  
  {  
                                                                                  dr["Name"]=textboxTmp.Text;  
  }  
                                                                    t.Rows.Add(dr);  
                                          }  
  Top

6 楼maxxxz(ma)回复于 2005-04-04 10:19:31 得分 0

你要把你控件里面的数据从放该数据的文本或label框中取出来才可以。Top

7 楼mazekui(悠悠春竹)回复于 2005-04-04 10:20:06 得分 45

问题在这里,当你定义了列名以后,你就得使用列名。  
  改成  
  DataRow   dr   =   t.NewRow   ();  
  dr["id"]   =   DataGrid1.Items[i].Cells[0].Text;  
  dr["name"]   =   DataGrid1.Items[i].Cells[1].Text;  
  t.Rows.Add(dr);Top

8 楼David_du(流川枫)回复于 2005-04-04 10:29:18 得分 0

To   maxxxz(ma)    
  我要的是从DataGrid1里面取呀,不是从控件中取Top

9 楼David_du(流川枫)回复于 2005-04-04 10:31:56 得分 0

mazekui(悠悠春竹)    
  果然正确,谢谢了,不过有没有办法不定义列名,取得DataGrid1里面的列名呢?  
  Top

10 楼David_du(流川枫)回复于 2005-04-04 10:35:49 得分 0

也就是说我不知道列名,也不知道有几列,DataGrid1所有数据都是绑定的,但是我只能从DataGrid1里面取数据,怎么才能让取得数据可以和绑定到DataGrid1里面的数据一模一样呢?Top

11 楼Compass_(指南针)回复于 2005-04-04 10:39:27 得分 1

//清空数据源  
  DataGrid2.DataSource   =   null;  
  DataGrid2.DataBind();  
  //再执行绑定  
  DataGrid2.DataSource   =   t;  
  DataGrid2.DataBind();  
   
  Top

12 楼David_du(流川枫)回复于 2005-04-04 10:41:42 得分 0

Compass_(指南针)    
  有什么用呀? DataGrid2根本就没有用过,何必还要去清空呢?  
  Top

13 楼daisylh(麗達)回复于 2005-04-04 10:44:35 得分 1

DataGrid1.Columns.Count()可以計算出DATAGRID共有幾列  
  那你就先用行的迴圈再用列的迴圈來進行讀取Top

14 楼David_du(流川枫)回复于 2005-04-04 10:48:56 得分 0

大哥,可不可以写两句呀?Top

15 楼David_du(流川枫)回复于 2005-04-04 11:01:14 得分 0

不是吧,我取出来,居然是0列!!!!!!!!!!!Top

相关问题

  • 大家看一看这段代码(不是找错误)
  • 这里有一段代码,大家帮我找找错,要如何修改?
  • 一段关于新闻发布的代码,请高手帮忙找错啊~~~
  • 注册登录代码,找错误!
  • 大家来看看这段代码??
  • 请高手来看看这段代码!
  • 请高手来看看这段代码
  • 一小段代码,请来看看
  • 高手请来看看这段代码??帮我改改!!!
  • 谁来看看这段诡异的代码!

关键词

  • datagrid
  • datatable
  • columns
  • add

得分解答快速导航

  • 帖主:David_du
  • fayewang
  • conner
  • maxxxz
  • mazekui
  • Compass_
  • daisylh

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo