RSS
热门关键字:  数据挖掘  数据仓库  商业智能  人工智能  搜索引擎

嵌套的DataGrid如何为子DataGrid动态增加模板列

来源: 作者:unkonwn 时间:2004-12-06 点击:

例子比较简单,直接贴代码了,例子达到以下功能:
(1)两个DataGrid嵌套
(2)外面一个DataGrid分页
(3)里面一个DataGrid动态增加模板列 
数据挖掘实验室

数据挖掘研究院


 

数据挖掘研究院

<%@ Page language="c#" Codebehind="WebForm45.aspx.cs" AutoEventWireup="false" Inherits="csdn2.WebForm45" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    
<HEAD>
        
<title>Test</title> 数据挖掘实验室
        
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
        
<meta content="C#" name="CODE_LANGUAGE">

数据挖掘研究院


        
<meta content="JavaScript" name="vs_defaultClientScript">
        
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">

数据挖掘研究院


    
</HEAD>
    
<body>
        
<form id="Form1" method="post" runat="server"> 数据挖掘研究院
            
<asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" PageSize="2" AllowPaging="True">
                
<Columns>

数据挖掘研究院


                    
<asp:TemplateColumn HeaderText="分类名">
                        
<ItemTemplate>
                            
<%# DataBinder.Eval(Container.DataItem, "classname"%>
                            
<asp:DataGrid id="DataGrid2" runat="server" AutoGenerateColumns="false"></asp:DataGrid>
                        
</ItemTemplate> 数据挖掘实验室
                    
</asp:TemplateColumn>
                
</Columns>
            
</asp:datagrid></form>

数据挖掘研究院


    
</body>
</HTML>

 


 

数据挖掘实验室

 

using System;
using System.Collections;
using System.ComponentModel;
using System.Data; 数据挖掘研究院
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace csdn2
{

数据挖掘研究院


    
/// <summary>

数据挖掘研究院


    
/// WebForm45 的摘要说明。
    
/// </summary>

    public class WebForm45 : System.Web.UI.Page
    
{
        
protected System.Web.UI.WebControls.DataGrid DataGrid1;
    
        
private void Page_Load(object sender, System.EventArgs e)
        
{ 数据挖掘研究院
            
// 在此处放置用户代码以初始化页面
            if(!IsPostBack)
            
{
                SetBind();
            }

        }


        
private void SetBind() 数据挖掘实验室
        
{ 数据挖掘研究院
            SqlConnection conn
=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
            SqlDataAdapter da
=new SqlDataAdapter("select * from class;select * from topic",conn); 数据挖掘研究院
            DataSet ds
=new DataSet();
            da.Fill(ds);
            ds.Relations.Add(
"class_topic",ds.Tables[0].Columns["classid"],ds.Tables[1].Columns["topicclassid"]); 数据挖掘研究院
            
this.DataGrid1.DataSource=ds.Tables[0];
            
this.DataGrid1.DataBind();
        }

数据挖掘研究院
        
#region Web 窗体设计器生成的代码 数据挖掘研究院
        
override protected void OnInit(EventArgs e)
        
{

数据挖掘研究院


            
//
            
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
            
//
            InitializeComponent();
            
base.OnInit(e);
        }

        
        
/// <summary> 数据挖掘实验室
        
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
        
/// 此方法的内容。
        
/// </summary>

        private void InitializeComponent() 数据挖掘研究院
        
{     数据挖掘研究院
            
this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
            
this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);

数据挖掘研究院


            
this.Load += new System.EventHandler(this.Page_Load);

        }

        
#endregion

数据挖掘研究院



        
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        
{

数据挖掘实验室


            
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
            
{ 数据挖掘研究院
                DataGrid dgrd
=(DataGrid)e.Item.FindControl("DataGrid2");
                dgrd.ItemDataBound 
+= new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid2_ItemDataBound);
                TemplateColumn tm
=new TemplateColumn(); 
                tm.ItemTemplate
=new ColumnTemplate(); 
                tm.HeaderText
="主题名"

数据挖掘实验室


                dgrd.Columns.Add(tm); 
                dgrd.DataSource
=((DataRowView)e.Item.DataItem).Row.GetChildRows("
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?