怎样使用DATAGIRD控件实现显示数据库中带关系的数据

huhong81312 2004-01-18 04:15:28
数据库中有2个表A表和B表 A有字段B_ID ,B有字段ID。B.ID与A.ID存在外键关系 B.ID是A.B_ID的父。现在要求使用DATAGRID显示B表并在记录上绑定1个模板列里面是个ImageButton点击它要求将子表中对应信息(A表)在当前DATAGIRD记录的下1行显示出来,再点下则把刚显示出来隐藏去,请问高手该怎么实现!
...全文
23 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
huhong81312 2004-01-19
  • 打赏
  • 举报
回复
客户也这么要求的!!UP
zhxtmail 2004-01-19
  • 打赏
  • 举报
回复
模板类中是可以嵌套的,可以在ItemTemplate 中再次嵌套一个DataGrid或者Repeater 等。
唯一要动态决定的是嵌套的数据绑定源。
解决方法有两种。
一、在循环中动态创建数据源,将主表的ID好通过<%# GetChildDataSet(DataBinder.Eval(Container.DataItem, "ID")) %>方式传递给一个方法,此方法返回一个数据集
这样就可以了。
二、不用再些方法,创建dataset的时候建立一个关系,嵌套的DataGrid中通过ds.关系名.ds
(具体怎么写记不清了。)可以得到子表的数据集,这样也可以。
huhong81312 2004-01-19
  • 打赏
  • 举报
回复
up
huhong81312 2004-01-19
  • 打赏
  • 举报
回复
up
TextBox1 2004-01-18
  • 打赏
  • 举报
回复
老板再来发傻
一脚把他踢走
搞定
huhong81312 2004-01-18
  • 打赏
  • 举报
回复
谁能把换行搞定送200分
huhong81312 2004-01-18
  • 打赏
  • 举报
回复
因为老板说的啊!
gshope 2004-01-18
  • 打赏
  • 举报
回复
为什么要换一行?奇怪。
TextBox1 2004-01-18
  • 打赏
  • 举报
回复
Mark
cg1120II 2004-01-18
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2643/2643526.xml?temp=.5095636
huhong81312 2004-01-18
  • 打赏
  • 举报
回复
gshope(北京.Net) 模板列是在同1行的我要换1行怎么搞啊?谢谢!
renshenwawa397 2004-01-18
  • 打赏
  • 举报
回复
在WEB方式下DATAGRID不能自动识别主从表,你可以想想别的方法
巍巍清风 2004-01-18
  • 打赏
  • 举报
回复
用DataGrid估计会很困难,可以用HTML的TABLE来实现这个Grid,这样控制起来就灵活多了,想怎么写怎么写,只是写的代码多一些。点那一行的时候,在PageLoad事件里把Table重新输出过,你想要什么样的都可以了,就是循环再循环。
gshope 2004-01-18
  • 打赏
  • 举报
回复
放个模板列,里面放个Label,在后台程序设置它的Text
huhong81312 2004-01-18
  • 打赏
  • 举报
回复
我就是不知道怎么在ASP。NET上写显示的。
gshope 2004-01-18
  • 打赏
  • 举报
回复
通过关系取得子表数据如果你知道,那么在什么地方显示就简单了。
huhong81312 2004-01-18
  • 打赏
  • 举报
回复
这个我会!我要知道怎么点那个按纽后将子表数据显示在这行的下1行!
gshope 2004-01-18
  • 打赏
  • 举报
回复
private void GetChildRowsFromDataRelation(DataTable myTable ) {
DataRow[] arrRows;
foreach(DataRelation myRelation in myTable.ChildRelations){
foreach(DataRow myRow in myTable.Rows){
arrRows = myRow.GetChildRows(myRelation, DataRowVersion.Proposed);
// Print values of rows.
for(int i = 0; i < arrRows.Length; i++){
foreach(DataColumn myColumn in myTable.Columns){
Console.WriteLine(arrRows[i][myColumn]);
}
}
}
}
}
gshope 2004-01-18
  • 打赏
  • 举报
回复
private void CreateRelation() {
// Get the DataColumn objects from two DataTable objects in a DataSet.
DataColumn parentCol;
DataColumn childCol;
// Code to get the DataSet not shown here.
parentCol = DataSet1.Tables["Customers"].Columns["CustID"];
childCol = DataSet1.Tables["Orders"].Columns["CustID"];
// Create DataRelation.
DataRelation relCustOrder;
relCustOrder = new DataRelation("CustomersOrders", parentCol, childCol);
// Add the relation to the DataSet.
DataSet1.Relations.Add(relCustOrder);
}
huhong81312 2004-01-18
  • 打赏
  • 举报
回复
请给我实现看看啊!我也知道有这个东西啊。谢谢!
加载更多回复(1)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧