您当前的位置: 首页 >  分类

如何通过动态生成Html灵活实现DataGrid分类统计的界面显示功能

发布时间:2004-10-24 22:49:00 ,浏览量:0

作者:未知   请作者速与本人联系 步入 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 {  ///  /// ClassCourse 的摘要说明。  ///  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);   }      ///   /// 设计器支持所需的方法 - 不要使用代码编辑器修改   /// 此方法的内容。   ///   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("    +"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("

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    108697博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0501s