• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        如何通過動態生成Html靈活完成DataGrid分類統計的界面顯示技巧

        如何通過動態生成Html靈活完成DataGrid分類統計的界面顯示技巧

        更新時間:2022-05-02 文章作者:未知 信息來源:網絡 閱讀次數:

        步入IT業已經有幾年的時間了,從最早接觸pb6.0到現在.Net技術,計算機技術不論是從硬件還是軟件都有巨大的進步.而中國程序員總體水平在世界上也是遠遠落后,其中缺乏完善的體系、必要的交流和程序員個人英雄主義的思想是主要原因.前不久在工作中遇到一個關于用DataGrid分類顯示數據的問題,顯示的樣式入下圖所示: 希望能為遇到類似問題的朋友提供一個解決方案,并掌握類似問題的解決方法.

        問題剖析:

        以上為例,每門課程屬于不同的類別,需要將顯示數據的第一項類別進行匯總顯示.用標準的DataGrid是難于實現上述功能的.顯然需要依靠自身來解決.

        思路:

        歸根到底,不論何種樣式的表格顯示,表現到前臺都是Html的Table元素,因此如果能夠在讀取數據時動態確定Html樣式,并通過Div將html生成到前臺顯示的話,就可以控制復雜的顯示.這里面其實包含了從已有顯示的html反推到動態html生成的過程.

        源代碼及注釋:

        定義類保存類別名字和數據條數

        public class KeyVal
        {
        private string m_Skey;
        private string m_SVal;
        public string strKey
        {
        get
        {
        return m_Skey;
        }
        set
        {
        m_Skey=value;
        }
        }
        public string strVal
        {
        get
        {
        return m_SVal;
        }
        set
        {
        m_SVal=value;
        }
        }
        public KeyVal()
        {}
        public KeyVal(string SKey,string SVal)
        {
        strKey=SKey;
        strVal=SVal;
        }
        }

        測試頁代碼和相關函數

        using System;
        using System.Collections;
        using System.ComponentModel;
        using System.Data;
        using System.Drawing;
        using System.Web;
        using System.Web.SessionState;
        using System.Web.UI;
        using System.Web.UI.WebControls;
        using System.Web.UI.HtmlControls;
        using System.Security.Principal;
        using Microsoft.Web.UI.WebControls;
        using System.Text;

        namespace EisWebSite.WebInternet
        {
        /// <summary>
        /// ClassCourse 的摘要說明。
        /// </summary>
        public class ClassCourse : System.Web.UI.Page
        {
        protected System.Web.UI.WebControls.DropDownList SpecialtyID;
        protected System.Web.UI.HtmlControls.HtmlGenericControl MainDiv;

        //
        #region 頁面初始化
        private void Page_Load(object sender, System.EventArgs e)
        {

        if (!Page.IsPostBack)
        {
        AppGlobal.CBoxFillSpecialtyData(ref this.SpecialtyID,true);
        }
        }

        #endregion

        #region Web 窗體設計器生成的代碼
        override protected void OnInit(EventArgs e)
        {
        //
        // CODEGEN: 該調用是 ASP.NET Web 窗體設計器所必需的。
        //
        InitializeComponent();
        base.OnInit(e);
        }

        /// <summary>
        /// 設計器支持所需的方法 - 不要使用代碼編輯器修改
        /// 此方法的內容。
        /// </summary>
        private void InitializeComponent()
        {
        this.SpecialtyID.SelectedIndexChanged += new System.EventHandler(this.SpecialtyID_SelectedIndexChanged);
        this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion

        private string CreateOutHtml()
        {


        //取出類型數目以及名稱
        DataSet dSet=new DataSet();

        dSet=添加自己的獲取數據集的函數(靈活設計Sql語句)結果為類型、數目

        //AppGlobal.AppSysWebService.ClassCourseTeacherMainFilters(Item);


        ArrayList mList=new ArrayList();

        foreach(DataRow dRow in dSet.Tables[0].Rows)
        {
        KeyVal mObj=new KeyVal();
        mObj.strKey=dRow[0].ToString();
        mObj.strVal=dRow[1].ToString();
        mList.Add(mObj);
        }

        StringBuilder OutHtml=new StringBuilder();
        dSet=添加自己的數據集函數.注意數據的排序方式與上同

        //AppGlobal.AppSysWebService.ClassCourseTeacherFilters(Item);
        //添加固定表頭
        OutHtml.Append("<table cellspacing='0' cellpadding='0' align='center' rules='all' bordercolor='black' border='1'"
        +"id='GRid'"+
        " style='word-break:break-all; BORDER-RIGHT:black 1px solid; BORDER-TOP:black 1px solid; BORDER-LEFT:black 1px solid; WIDTH:100%; BORDER-BOTTOM:black 1px solid; BORDER-COLLAPSE:collapse'>"
        );
        OutHtml.Append("<table cellspacing='0' cellpadding='0' align='center' rules='all' bordercolor='black' border='1'"
        +"id='AGRid'"+
        " style='word-break:break-all;BORDER-RIGHT:black 1px solid; BORDER-TOP:black 1px solid; BORDER-LEFT:black 1px solid; WIDTH:100%; BORDER-BOTTOM:black 1px solid; BORDER-COLLAPSE:collapse'>");
        OutHtml.Append("<tr align='center'>"+
        "<td width='87' style='WIDTH: 87px; HEIGHT: 34px'>類別</td>"+
        "<td style='WIDTH: 253px; HEIGHT: 34px'>課程編號</td>"+
        "<td style='WIDTH: 280px; HEIGHT: 34px'>課程名稱</td>"+
        "<td style='WIDTH: 86px; HEIGHT: 34px'>學分</td>"+
        "<td style='WIDTH: 140px; HEIGHT: 34px' >"+
        "<table width='100%' height='100%' cellpadding='0' cellspacing='0'>"+
        "<tr>"+
        "<td align='center'width='33%' ></td>"+
        "<td align='center'width='33%'>學期</td>"+

        "<td align='center'width='33%' ></td>"+
        "</tr>"+
        "<tr>"+
        "<td align='center' width='33%'>I</td>"+
        "<td align='center' width='33%'>II</td>"+
        "<td align='center' width='33%'>III</td>"+
        "</tr>"+
        ""+
        "</td>"+
        "<td style='WIDTH: 86px; HEIGHT: 34px'>教師名稱</td>"+
        "</tr>");
        OutHtml.Append("<table cellspacing='0' cellpadding='0' align='center' rules='all' bordercolor='black' border='1'"
        +"id='bGRid'"+
        " style='word-break:break-all;BORDER-RIGHT:black 1px solid; BORDER-TOP:black 1px solid; BORDER-LEFT:black 1px solid; WIDTH:775px; BORDER-BOTTOM:black 1px solid; BORDER-COLLAPSE:collapse'>");

        string SrcType="";
        string NewType="";
        foreach(DataRow dRow in dSet.Tables[0].Rows)
        {
        OutHtml.Append("<tr align='center' height='24px' style='word-break:break-all;'> ");

        NewType=dRow["KeyValue"].ToString();

        if (SrcType!=NewType)
        OutHtml.Append("<td width='80' style='WIDTH: 80px; HEIGHT: 34px' rowspan="+SeachObj(dRow["KeyValue"].ToString(),mList).strVal+">"+SeachObj(dRow["KeyValue"].ToString(),mList).strKey+"</td>");
        SrcType=NewType;

        OutHtml.Append("<td width=231px >"+dRow["courseID"].ToString()+"</td>");
        OutHtml.Append("<td width=255px>"+dRow["courseName"].ToString()+"</td>");
        OutHtml.Append("<td width=80px>"+dRow["credit"].ToString()+"</td>");
        // OutHtml.Append("<td width=100px>");
        // OutHtml.Append("<table width='110' height='100%' cellpadding='0' cellspacing='0' bordercolor='black' border='1'>"+
        // "<tr>");
        switch (Convert.ToInt16(dRow["coursetime"].ToString(),10))
        {

        case 1:
        OutHtml.Append("<td width=43px>√"+"</td>");
        OutHtml.Append("<td width=43px></td>");
        OutHtml.Append("<td width=43px></td>");
        break;
        case 2:
        OutHtml.Append("<td width=43px></td>");
        OutHtml.Append("<td width=43px>√"+"</td>");
        OutHtml.Append("<td width=43px></td>");
        break;
        case 3:
        OutHtml.Append("<td width=43px></td>");
        OutHtml.Append("<td width=43px></td>");
        OutHtml.Append("<td width=3px>√"+"</td>");
        break;
        default:
        OutHtml.Append("<td width=43px></td>");
        OutHtml.Append("<td width=43px></td>");
        OutHtml.Append("<td width=43px></td>");
        break;
        }
        // OutHtml.Append("</tr>");
        // OutHtml.Append("</td>");
        OutHtml.Append("<td width=79px style='word-break:break-all;'>"+dRow["TName"].ToString()+"</td>");
        OutHtml.Append("</tr>");
        }
        //添加固定表尾部
        OutHtml.Append("");
        OutHtml.Append("");
        //
        // DGRid.DataSource=dSet;
        // DGRid.DataBind();
        return OutHtml.ToString();
        }
        private KeyVal SeachObj(string strKey, ArrayList mList)
        {
        for (int i=0;i<=mList.Count-1;i++)
        {
        if (((KeyVal)mList[i]).strKey==strKey)
        return (KeyVal)mList[i];
        }
        return null;
        }



        }

        }

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲国产亚洲综合在线尤物| 亚洲av中文无码乱人伦在线播放| 亚洲国产中文在线二区三区免| 久久免费国产精品一区二区| 国产成人A人亚洲精品无码| 大妹子影视剧在线观看全集免费| 在线精品亚洲一区二区三区| 男女一边摸一边做爽的免费视频| 亚洲伊人色欲综合网| 一级做a爱过程免费视| 亚洲精品无码专区久久久| 中文字幕版免费电影网站| 亚洲香蕉成人AV网站在线观看| 精品亚洲永久免费精品| 亚洲视频一区网站| 久久WWW色情成人免费观看| 亚洲成av人无码亚洲成av人| 免费看一级做a爰片久久| a级毛片免费观看网站| 久久精品亚洲综合| 国产免费不卡v片在线观看| 亚洲高清毛片一区二区| 亚洲日本韩国在线| 日本免费中文视频| 亚洲成aⅴ人片在线观| 尤物永久免费AV无码网站| 九九全国免费视频| 亚洲自偷自拍另类12p| 成人免费看片又大又黄| 免费人妻精品一区二区三区| 亚洲AV无码久久精品狠狠爱浪潮| 久视频精品免费观看99| 日韩色视频一区二区三区亚洲| 伊人亚洲综合青草青草久热| 国产在线观看麻豆91精品免费| 国产成人精品亚洲一区| 久久夜色精品国产亚洲AV动态图| 成年女人视频网站免费m| 国产高潮久久免费观看| 亚洲天堂电影在线观看| 免费一级毛片在线观看 |