| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 762 人关注过本帖
标题:请教一个DataGrid 的嵌套问题
只看楼主 加入收藏
bashenan2003
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-2-25
收藏
 问题点数:0 回复次数:6 
请教一个DataGrid 的嵌套问题

各位:
我是个初学者,遇到了一个关于DataGrid嵌套问题,请那个帮我看下我的程序是怎么回事啊!我在主DataGrid 里的第一列用了一个ButtonColumn,我是想点击该列的相应项显示数据库里的相应内容.主DataGrid的ID=grdInvoice,从DataGrid的ID=productGrid,我是这么写的,结果只显示了从DataGrid各列的标题,没找到相应的内容!!!请给我指下错误处,谢谢!

部分代码:(我把点击事件写在ItemCommand事件里的)

private void grdInvoice_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string n = e.Item.Cells[0].ToString();/////////是不是这里的问题,该怎么写这里啊?
string strconn= ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn= new SqlConnection (strconn);
cn.Open ();
string mysql="SELECT ProductNum,ProductDesc,ChineseName,Qty,UnitPrice,Origin FROM EmployImportApply WHERE InvoiceNo='"+n+"' ";
SqlCommand cm=new SqlCommand (mysql,cn);
productGrid.DataSource = cm.ExecuteReader();
productGrid.DataBind ();
cn.Close ();
Label2.Text = n;/////我用了个Label看看n传了什么,结果显示
/////////////////////////////////"System.Web.UI.WebControls.TableCell",这是怎么回事啊!
}



搜索更多相关主题的帖子: 嵌套 DataGrid 
2006-04-19 12:43
wolfsjian
Rank: 1
等 级:新手上路
帖 子:169
专家分:0
注 册:2006-3-29
收藏
得分:0 
dg能套起用??高级~~~

productGrid.DataSource = cm.ExecuteReader();这句也行得通么??

是我就定义个SqlDataAdapter aaa,
然后用aaa=cm.ExecuteReader();
再label.text=aaa["...."]+....

我是要成为海贼王的男人!!! http://wolfsjian./ebbs
2006-04-19 14:39
bashenan2003
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-2-25
收藏
得分:0 
楼上的,这句"productGrid.DataSource = cm.ExecuteReade();这句没有错啊!我要是把string n = e.Item.Cells[0].ToString();改为string n = e.Item.Cells[0].Text.ToString();的话,那Label2什么也不会显示啊!这又是怎么回事啊!
2006-04-19 17:58
小笨笨
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:1169
专家分:0
注 册:2006-4-17
收藏
得分:0 

productGrid.DataSource = cm.ExecuteReader();这句也行没错,而且比2楼的速度要快,但是不可以做翻页之类的功能。


欢迎光临我的博客: http://smallfools.blog./default.html
2006-04-20 09:53
guobinxian
Rank: 1
等 级:新手上路
威 望:2
帖 子:195
专家分:0
注 册:2006-3-28
收藏
得分:0 
e.Item.Cells[0].Controls[0].toString();
在DATAGRID里一般会含有TEXTBOX或LABLE之类的控件
生成摸板列之后就可以看到.

?蔾錵輐落溶溶钥,柳絮筂鎕淡淡風?。
2006-04-20 18:09
lanjinbo
Rank: 1
等 级:新手上路
威 望:1
帖 子:109
专家分:0
注 册:2006-4-14
收藏
得分:0 
我想这个应该可以帮你:我也是看别人的,我做过了可以实现嵌套。
简介

  本文描述如何使用嵌套的Repeater 控件来显示分级数据 。当然了,你也可以将这一技术应用到其他的列表绑定控件上去,比如DataGrid包含DataGrid,DataList包含DataList等等的组合。

绑定到父表

  1.添加一个新的Web Form 到应用程序项目中,名称为Nestedrepeater.aspx.
  2.从工具箱托动一个Repeater 控件到这个页面上, 设定其ID 属性 parent .
  3.切换到HTML 视图.
  4.选中下列<itemtemplate 代码,复制到Repeater 控件对应的位置。注意,粘贴的时候请使用粘贴为html”功能。这些语句包含了数据绑定语法,很简单。

itemtemplate
b><%# DataBinder.Eval(Container.DataItem, "au_id") %></b><br
/itemtemplate

  5.打开Nestedrepeater.aspx.cs 这个代码分离文件。降下列代码添加到Page_Load 事件中,其作用是建立一个到 Pubs (这个数据库sql server的演示数据库。另外在安装.net framework sdk的时候也会安装这个数据库)数据库的连接,并绑定Authors 表到Repeater 控件

public void Page_Load()
{
 SqlConnection cnn = new SqlConnection("server=(local);database=pubs;uid=sa;pwd=;");
 SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);
  DataSet ds = new DataSet();
  cmd1.Fill(ds,"authors");

  //这里将要插入子表的数据绑定

  parent.DataSource = ds.Tables["authors"];
  Page.DataBind();
 cnn.Close();
}

  6.在文件的头部添加下面的名称空间
  using System.Data.SqlClient;
  7.根据你自己的情况修改一下连接字符串
  8.保存并编译应用程序
  9.在浏览器中打开这个页面,输出结果类似于下面的格式

172-32-1176
213-46-8915
238-95-7766
267-41-2394
...

  绑定到子表

  1.在页面的HTML视图中,添加下列代码。其目的是增加子Repeater 控件到父Repeater的项目模板中,形成嵌套。

asp:repeater id="child" runat="server"
itemtemplate
%# DataBinder.Eval(Container.DataItem, "[\"title_id\"]") %><br
/itemtemplate
/asp:repeater

  2.设置子Repeater 控件的DataSource 属性:

asp:repeater ... datasource='%# ((DataRowView)Container.DataItem)
.Row.GetChildRows("myrelation") %
'

  3.在页面顶部添加下列指令(请注意,是在.aspx文件中):

  <%@ Import Namespace="System.Data" %

  在.cs文件中,Page_Load中的注释部分(//这里将要插入子表的数据绑定)替换成下列代码:

SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);
cmd2.Fill(ds,"titles");
ds.Relations.Add("myrelation",
ds.Tables["authors"].Columns["au_id"],
ds.Tables["titles"].Columns["au_id"]);

  4.保存并编译应用程序。
  .在浏览器中察看修改后的页面。显示格式类似于下面的格式:

172-32-1176
PS3333
213-46-8915
BU1032
BU2075
238-95-7766
PC1035
267-41-2394
BU1111
TC7777
...


天蓝蓝,水蓝蓝,扬帆远航,有鱼儿作伴 风嘻嘻,云嘻嘻,共渡幸福彼岸
2006-04-22 02:37
yq_haha
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-4-22
收藏
得分:0 
你要是想实现嵌套的话,最主要的就是做数据库的时候要有主外表,然后就是数据邦定的问题了,很简单的。解决数据库的设计就一切ok

2006-04-22 08:52
快速回复:请教一个DataGrid 的嵌套问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021804 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved