一种新的嵌套绑定的方法

以前做嵌套,要么是在多次访问数据库,要么是把数据取出来,然后分别使用DataView的RowFilter来做,今天发现了一种新的方法,使用DataSet的Relations可以很方便的做嵌套

方法主要是在dataset的表之间建立关联,然后在前台html视图里使用

ExpandedBlockStart.gif ContractedBlock.gif DataSource=' <% dot.gif # ((DataRowView)Container.DataItem).Row.GetChildRows("MyRelation" %> '

具体例子如下:
这里用的是两个repeater嵌套

绑定代码:

None.gif Business.Customer obj  =   new  Zeda.CRM.Business.Customer();
None.gif            DataSet ds 
=  obj.up_CRM_ProductSearchList( this .KeyWord);
None.gif            ds.Relations.Add(
" MyRelation " ,ds.Tables[ 0 ].Columns[ " CustomerId " ],ds.Tables[ 1 ].Columns[ " CustomerId " ]);
None.gif
None.gif            ParentRep.DataSource 
=  ds.Tables[ 0 ].DefaultView;
None.gif            
// ParentRep.DataBind();
None.gif
            AspNetPager1.RecordCount  =  ds.Tables[ 0 ].Rows.Count;
None.gif            Page.DataBind();
None.gif            ds.Dispose();
None.gif            obj.Dispose();

html视图代码

 

None.gif < asp:repeater  id ="ParentRep"  Runat ="server" >
None.gif                                            
< ItemTemplate >
None.gif                                                
< tr >
ExpandedBlockStart.gifContractedBlock.gif                                                    
< td  height =25  width =40% > &nbsp;&nbsp;&nbsp;&nbsp; < href ='CustomerDetail.aspx?CustomerId=<%#  DataBinder.Eval(Container.DataItem,"CustomerId")% > '> <% dot.gif # DataBinder.Eval(Container.DataItem,"Name") %> </ a ></ td >
None.gif                                                    
< td >< asp:Repeater  ID =sonRep  Runat =server  DataSource ='<%#  ((DataRowView)Container.DataItem).Row.GetChildRows("MyRelation") % > '>
None.gif                                                            
< ItemTemplate >
ExpandedBlockStart.gifContractedBlock.gif                                                                
< href ='ProductDetail.aspx?ProductId=<%#  DataBinder.Eval(Container.DataItem,"[ProductId]")% > '> <% dot.gif # DataBinder.Eval(Container.DataItem, "[\"ProductName\"]") %> </ a >
None.gif                                                            
</ ItemTemplate >
None.gif                                                            
< SeparatorTemplate >
None.gif                                                                
&nbsp;&nbsp;
None.gif                                                            
</ SeparatorTemplate >
None.gif                                                        
</ asp:Repeater ></ td >
None.gif                                                
</ tr >
None.gif                                            
</ ItemTemplate >
None.gif                                            
< SeparatorTemplate >
None.gif                                                
< tr >
None.gif                                                    
< td  height ="1"  background ="../images/xian01.gif"  colspan ="2" ></ td >
None.gif                                                
</ tr >
None.gif                                            
</ SeparatorTemplate >
None.gif                                        
</ asp:repeater >

 

转载于:https://www.cnblogs.com/zqs/archive/2005/12/01/288366.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值