【【DataList里再放个DataGrid的绑定问题!高分求解】】

噯卟釋手 2004-12-23 10:10:24
对会的人而言 问题其实比较简单 为了叙述清楚 我使用描述性文字较多 请耐心看完 呵呵 ^_^
先说明一下我使用的数据库结构 假定全为Varchar(20)
处理主表(TM)
处理序号 借支编号 处理人员
tcode bcode tuser

t01 b01 user1
t02 b01 user2
t03 b01 user3

处理子表(TD)
处理序号 处理数量
tcode tnumber

t01 100
t01 200
t02 300
t02 400
t03 500
t03 600


现在我的问题是这样的 为了显示每一张借支单据(由bcode确定)的被处理信息
在WebForm1.aspx里用到一个DataList1 在DataList1的项模板ItemTemplate里要绑定处理主表的:处理序号tcode 处理人员tuser (这个我

已经完成,用到存储过程proc1 参数@bcode) 再在DataList1的项模板ItemTemplate里放一个DataGrid1 这个DataGrid1我就要根据DataList1

的项模板ItemTemplate被绑定的处理编号tcode 再绑定每个处理编号对应的处理信息(这里就要用第二个存储过程proc2 参数@tcode) 效果

如下:

-------------------------------------------
-------------------------------------------
tcode:t01 tuser: user1
---------------------------
tcode:t01 100
tcode:t01 200
-------------------------------------------
-------------------------------------------

-------------------------------------------
-------------------------------------------
tcode:t02 tuser: user2
---------------------------
tcode:t02 300
tcode:t02 400
-------------------------------------------
-------------------------------------------

-------------------------------------------
-------------------------------------------
tcode:t03 tuser: user3
---------------------------
tcode:t03 500
tcode:t03 600
-------------------------------------------
-------------------------------------------


请问怎么实现? 我主要是对DataList的使用和DataList里再放DataGrid的绑定不熟悉 可以给出代码就最好 谢谢~~~ 在线等 如果可以

请加QQ:8453605 希望今天能解决



...全文
198 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppqi 2004-12-24
  • 打赏
  • 举报
回复
哈。。都是兄弟吗。客气啥
xzq686 2004-12-23
  • 打赏
  • 举报
回复
哈。。都是兄弟吗。客气啥。。
xclzteb 2004-12-23
  • 打赏
  • 举报
回复
楼上可以咯~~
xclzteb 2004-12-23
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3600/3600123.xml?temp=.9944727
顶一下
噯卟釋手 2004-12-23
  • 打赏
  • 举报
回复
成功!!!!!!!! 虽然你们的回答没帮上我什么忙 不过还是谢谢各位热心的回帖 谢谢~~
aliketen 2004-12-23
  • 打赏
  • 举报
回复
strSql = "Select * from Flash_Class1;Select * from Flash_Class2";
aliketen 2004-12-23
  • 打赏
  • 举报
回复
aspx文件
<%@ Import namespace=" System.Data"%>

<asp:datagrid id="DataGrid1" runat="server" Height="724px" BorderWidth="1px" AutoGenerateColumns="False"
CellPadding="0" Width="834px" ShowHeader="False" BorderColor="Black">
<Columns>

<asp:TemplateColumn>
<ItemTemplate>

<%# DataBinder.Eval(Container.DataItem, "Name") %>

<asp:DataGrid id=DataGrid2 runat="server" AutoGenerateColumns="False" BorderColor="Black" DataKeyField="nClassid" DataSource='<%# ((DataRowView)Container.DataItem).CreateChildView("FlashRelation") %>' Width="100%">
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#0066FF"></HeaderStyle>
<Columns>
<asp:BoundColumn Visible="False" DataField="nClassid" ReadOnly="True">
</asp:BoundColumn>
</Columns>
</asp:DataGrid>

</ItemTemplate>
</asp:TemplateColumn>

</Columns>
</asp:datagrid>


cs文件

//建立DataGrid建立父子关系
SqlDataAdapter da=new SqlDataAdapter(strSql,conn);
DataSet ds=new DataSet();
da.Fill(ds);
ds.Tables[0].TableName = "Flash_Class1" ;
ds.Tables[1].TableName = "Flash_Class2" ;
DataColumn Parent = ds.Tables["Flash_Class1"].Columns["mClassid"] ;
DataColumn Child = ds.Tables["Flash_Class2"].Columns["mClassid"] ;
DataRelation FlashRelation = new DataRelation("FlashRelation", Parent, Child,false);
ds.Relations.Add(FlashRelation) ;
DataGrid1.DataSource=ds.Tables["Flash_Class1"].DefaultView;
DataGrid1.DataBind();
噯卟釋手 2004-12-23
  • 打赏
  • 举报
回复
谢谢热心的xzq686(瞬) 哥哥 呵呵 虽然问题暂时还没解决 可是你的热情已经让我很感动了
xzq686 2004-12-23
  • 打赏
  • 举报
回复
SqlDataAdapter tcodeAdapter = New SqlDataAdapter("Select * from TM; select tcode,TD.tnumber from TM,TD where TM.tcode=TD.tcode, MyConnection)
DataSet todeDataSet = New DataSet()
tcodeAdapter .Fill(todeDataSet)
todeDataSet.Tables[0].TableName = "TM"
todeDataSet.Tables[1].TableName = "TD"
DataRelation myDataRelation;
myDataRelation = new DataRelation("tcode", ds.Tables["TM"].Columns["tcode"], ds.Tables["TD"].Columns["tcode"]);
ds.Relations.Add(myDataRelation);
DataList1.SetDataBinding(ds,"TM");//主表
DataGrid1.SetDataBinding(ds,"TM.tcode");//从表

下面的是孟子的。用VB写的。和你要求的差不多。。代码挺全的。上面的是C#的类似主要代码。你自己改一下。
http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=149E5DD7-3B32-461e-ACC6-51D1652E6746

噯卟釋手 2004-12-23
  • 打赏
  • 举报
回复
现在我就是要把:<%# DataBinder.Eval(Container.DataItem, "tcode")%></TD>
这里面的tcode当做参数赋给我的第二个存储过程proc2啊 可是我取不到tcode这个值啊 郁闷
噯卟釋手 2004-12-23
  • 打赏
  • 举报
回复
在DataList里我是这么绑定tcode的 代码如下:

<TD style="FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#99ccff', endColorStr='#FFFFFF',gradientType='0')" width="160">处理序号:<%# DataBinder.Eval(Container.DataItem, "tcode")%></TD>
噯卟釋手 2004-12-23
  • 打赏
  • 举报
回复
现在我已经绑定DataList了 并且准备在Datalist1_ItemDataBound里绑定DataGrid了 可是 我怎么把
DataList里被绑定的那个tcode找到并赋给我的存储过程proc2啊 这样估计就可以绑定了 可是 怎么取得DataList里被绑定的那个tcode啊 急死我了 555.............
xzq686 2004-12-23
  • 打赏
  • 举报
回复
你试试建立主从关系:

DataRelation myDataRelation;
myDataRelation = new DataRelation("tcode", ds.Tables["TM"].Columns["tcode"], ds.Tables["TD"].Columns["tcode"]);
ds.Relations.Add(myDataRelation);
DataList1.SetDataBinding(ds,"TM");//主表
DataGrid1.SetDataBinding(ds,"TM.tcode");//从表
噯卟釋手 2004-12-23
  • 打赏
  • 举报
回复
luluso(相约中国大陆最南端-湛江是我家、爱护靠大家) 说的道理我都明白
可是 我怎么给DataGrid赋参数@tcode啊 当DataList被绑定的时候 生成的tcode都是不同的啊
噯卟釋手 2004-12-23
  • 打赏
  • 举报
回复
各位是不是嫌分少啊 我想给2000分 可是系统不让啊
噯卟釋手 2004-12-23
  • 打赏
  • 举报
回复
?????????????????????
xzq686 2004-12-23
  • 打赏
  • 举报
回复
问楼上的luluso好。估计马上就双星了。哈。


luluso 2004-12-23
  • 打赏
  • 举报
回复
DataList中的嵌套一个DataGrid.通过DataList的ItemDataBound事件中查找DataGrid控件,给DataGrid设置数据源,绑定数据.
liulxmooo 2004-12-23
  • 打赏
  • 举报
回复
up
frostnet 2004-12-23
  • 打赏
  • 举报
回复
不用怎么麻烦吧,用数据关系就行了啊
加载更多回复(7)

62,047

社区成员

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

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

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

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