使用DataGrid控件实现以主细表显示数据


实现步骤
第一,在页面上加入2个DataGrid(dgMaster,dgDetail),设置好样式;
第二,在dgMaster中添加一个模板列,并且将dgDetail加入到模板中

None.gif < asp:DataGrid  id ="dgMaster"  style ="Z-INDEX: 101; LEFT: 48px; POSITION: absolute; TOP: 64px"  runat ="server"
None.gif                AutoGenerateColumns
="False"  ShowHeader ="False"  Width ="368px" >
None.gif                
< Columns >
None.gif                    
< asp:TemplateColumn >
None.gif                        
< ItemTemplate >
None.gif                            
< TABLE  cellSpacing ="0"  cellPadding ="0"  width ="100%"  border ="0" >
None.gif                                
< TR >
None.gif                                    
< TD  bgColor ="#3399ff" >< FONT  color ="#ffffff" >< B > 订单号:
ExpandedBlockStart.gifContractedBlock.gif                                                
<% dot.gif # DataBinder.Eval(Container.DataItem, "OrderID" %>
None.gif                                            
</ B ></ FONT >
None.gif                                    
</ TD >
None.gif                                
</ TR >
None.gif                                
< TR >
None.gif                                    
< TD  align ="right" >
None.gif                                        
< asp:DataGrid  id =dgDetail  runat ="server"  Width ="100%"  AutoGenerateColumns ="False"  Font-Size ="Smaller"  GridLines ="Horizontal"  CellPadding ="4"  BackColor ="White"  BorderWidth ="3px"  BorderStyle ="Double"  BorderColor ="#336666"  DataKeyField ="OrderID"  DataSource ='<%#  ((System.Data.DataRowView)Container.DataItem).CreateChildView("tableRelation") % > '>
None.gif                                            
< SelectedItemStyle  Font-Bold ="True"  ForeColor ="White"  BackColor ="#339966" ></ SelectedItemStyle >
None.gif                                            
< ItemStyle  ForeColor ="#333333"  BackColor ="White" ></ ItemStyle >
None.gif                                            
< HeaderStyle  Font-Bold ="True"  ForeColor ="White"  BackColor ="#336666" ></ HeaderStyle >
None.gif                                            
< FooterStyle  ForeColor ="#333333"  BackColor ="White" ></ FooterStyle >
None.gif                                            
< Columns >
None.gif                                                
< asp:BoundColumn  Visible ="False"  DataField ="OrderID"  ReadOnly ="True" ></ asp:BoundColumn >
None.gif                                                
< asp:TemplateColumn  HeaderText ="产品名称" >
None.gif                                                    
< HeaderStyle  Width ="250px" ></ HeaderStyle >
None.gif                                                    
< ItemTemplate >
ExpandedBlockStart.gifContractedBlock.gif                                                        
<% dot.gif # DataBinder.Eval(Container.DataItem, "ProductName" %>
None.gif                                                    
</ ItemTemplate >
None.gif                                                
</ asp:TemplateColumn >
None.gif                                                
< asp:BoundColumn  DataField ="UnitPrice"  HeaderText ="单价"  DataFormatString ="{0:c}" ></ asp:BoundColumn >
None.gif                                                
< asp:BoundColumn  DataField ="Quantity"  HeaderText ="数量" ></ asp:BoundColumn >
None.gif                                                
< asp:BoundColumn  DataField ="Discount"  HeaderText ="折扣" ></ asp:BoundColumn >
None.gif                                            
</ Columns >
None.gif                                            
< PagerStyle  HorizontalAlign ="Center"  ForeColor ="White"  BackColor ="#336666"  Mode ="NumericPages" ></ PagerStyle >
None.gif                                        
</ asp:DataGrid ></ TD >
None.gif                                
</ TR >
None.gif                            
</ TABLE >
None.gif                        
</ ItemTemplate >
None.gif                    
</ asp:TemplateColumn >
None.gif                
</ Columns >
None.gif            
</ asp:DataGrid >

第三,在添加代码
None.gif private   void  Page_Load( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
//页面初试化时进行数据绑定
InBlock.gif
            if(!IsPostBack)
InBlock.gif                DataGridDataBind();
ExpandedBlockEnd.gif        }

None.gif
None.gif        
private   void  DataGridDataBind()
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
//定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
InBlock.gif
            SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
InBlock.gif            
//创建数据适配器对象
InBlock.gif
            SqlDataAdapter da = new SqlDataAdapter("Select top 5 * from Orders  select OrderID ,Products.ProductName,[order Details].Unitprice,[order Details].Quantity,[order Details].discount from [order Details],Products where [Order Details].ProductId=Products.ProductID",conn);
InBlock.gif            
//创建DataSet对象
InBlock.gif
            DataSet ds = new DataSet();
InBlock.gif            
try
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
//填充数据集
InBlock.gif
                da.Fill(ds);
InBlock.gif                
//设定表名字
InBlock.gif
                ds.Tables[0].TableName = "Orders";
InBlock.gif                ds.Tables[
1].TableName = "Order Details";
InBlock.gif                DataColumn Parent 
= ds.Tables["Orders"].Columns["OrderID"];
InBlock.gif                DataColumn Child  
= ds.Tables["Order Details"].Columns["OrderID"];
InBlock.gif                DataRelation tableRelation 
= new DataRelation("tableRelation", Parent, Child, false);
InBlock.gif                ds.Relations.Add(tableRelation);
InBlock.gif                
//进行数据绑定
InBlock.gif
                dgMaster.DataSource = ds.Tables["Orders"].DefaultView;
InBlock.gif                dgMaster.DataBind();
ExpandedSubBlockEnd.gif            }

InBlock.gif            
catch(Exception error)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                Response.Write(error.ToString());
ExpandedSubBlockEnd.gif            }
    
ExpandedBlockEnd.gif        }

转载于:https://www.cnblogs.com/timsoft/articles/412138.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值