国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

嵌套的DataGrid如何為子DataGrid動態增加模板列

2024-07-21 02:15:59
字體:
來源:轉載
供稿:網友
國內最大的酷站演示中心!

例子比較簡單,直接貼代碼了,例子達到以下功能:
(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();
        }

        web 窗體設計器生成的代碼#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("class_topic");
                dgrd.databind();
            }
        }

        private void datagrid1_pageindexchanged(object source, system.web.ui.webcontrols.datagridpagechangedeventargs e)
        {
            this.datagrid1.currentpageindex=e.newpageindex;
            setbind();
        
        }

        private void datagrid2_itemdatabound(object sender, system.web.ui.webcontrols.datagriditemeventargs e)
        {
            if(e.item.itemtype==listitemtype.item||e.item.itemtype==listitemtype.alternatingitem)
            {
                ((label)e.item.findcontrol("topicname")).text=convert.tostring(databinder.eval(e.item.dataitem,"[/"topicname/"]"));
            }
        }
    }

    public class columntemplate : itemplate 
    
        public void instantiatein(control container)       
        
            label l=new label(); 
            l.id="topicname";
            container.controls.add(l); 
        } 
    } 
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宝兴县| 工布江达县| 峨眉山市| 山西省| 泰宁县| 凤山市| 贞丰县| 茌平县| 通城县| 上虞市| 湘潭县| 南部县| 广汉市| 九龙县| 土默特左旗| 依兰县| 西吉县| 陆川县| 雅江县| 日土县| 五寨县| 凤山市| 台江县| 新泰市| 新民市| 临汾市| 买车| 呼和浩特市| 尼木县| 海城市| 咸宁市| 铜陵市| 那曲县| 巴塘县| 汽车| 保康县| 元谋县| 昭觉县| 新蔡县| 双流县| 固安县|