动软论坛动软.net代码生成器开发插件开发与类库交流 我写的一个分页程序,顺被直接生成Table

1  /  1  页   1 跳转 查看:1555

我写的一个分页程序,顺被直接生成Table

我写的一个分页程序,顺被直接生成Table

/* ------------------------------------------------------------------
* CopyRight (C) 2008  西南交通大学唯易软件开发室  版权所有。
*
* 文 件 名:OnlyEasyBase.WebUI.Table.TableModel
* 功    能:表格的Model类。
*
* 作    者:孙钦秋
* 创建日期:2008年01月01日
*
* 修改标志:
* 修改日期:
* 修改描述:

//-------------------------------------------------------------------*/
using System;

namespace OnlyEasyBase.WebUI.Table
{
    public class TableModel
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public TableModel()
        {
            rowNum = 1;
            colNum = 0;
            isAddImg = false;
            colMaxNum = 0;
        }
        private string strCaption;                // 表说明
        private string strTable;                  // 表格字段
        private string strRow;                    // 行字段
        private string strCol;                    // 列字段
        private string strRowHead;                // 表头
        private string strColHead;                // 列头
        private int rowNum;                      // 行数
        private int colNum;                      // 列数
        private bool isAddImg;                    // 是不是加图片
        private int colMaxNum;                    // 最大列数
        private bool isAddEmp;
        public bool IsAddEmp
        {
            get { return isAddEmp; }
            set { isAddEmp = value; }
        }
        public string StrCaption
        {
            get { return strCaption; }
            set { strCaption = value; }
        }
        public string StrTable
        {
            get { return strTable; }
            set { strTable = value; }
        }
        public string StrRow
        {
            get { return strRow; }
            set { strRow = value; }
        }
        public string StrCol
        {
            get { return strCol; }
            set { strCol = value; }
        }
        public string StrRowHead
        {
            get { return strRowHead; }
            set { strRowHead = value; }
        }
        public string StrColHead
        {
            get { return strColHead; }
            set { strColHead = value; }
        }
        public int RowNum
        {
            get { return rowNum; }
            set { rowNum = value; }
        }
        public int ColNum
        {
            get { return colNum; }
            set { colNum = value; }
        }
        public bool IsAddImg
        {
            get { return isAddImg; }
            set { isAddImg = value; }
        }
        public int ColMaxNum
        {
            get { return colMaxNum; }
            set { colMaxNum = value; }
        }
        public string StrImg
        {
            get { return ""; }
        }
    }
}


______________________________________________


/* ------------------------------------------------------------------
* CopyRight (C) 2008  西南交通大学唯易软件开发室  版权所有。
* 版权声明:该表功能为本工作室独立开发,如若您需要使用本软件请联系工作室。谢谢。
* 文 件 名:OnlyEasyBase.WebUI.Table.Table
* 功    能:表格。
*
* 作    者:孙钦秋
* 创建日期:2008年01月01日
*
* 修改标志:
* 修改日期:
* 修改描述:

//-------------------------------------------------------------------*/
using System;
using System.Data;
using System.Text;

namespace OnlyEasyBase.WebUI.Table
{
    public class Table : TableModel
    {
        public Table()
        { }
        /// <summary>
        /// 添加列
        /// </summary>
        /// <param name="colText">列显示的值</param>
        /// <param name="colWidth">列的宽度</param>
        /// <param name="cssName">cssName</param>
        public void AddColHead(string colText, string colWidth)
        {
            System.Text.StringBuilder strBuilder = new StringBuilder();
            strBuilder.AppendFormat("      <td width=\"{0}\">", colWidth);
            if (!colText.Equals("Box"))
            {
                strBuilder.Append((colText.Equals("") ? "<img border=\"0\" src=\"/Share/ImgLink/none.jpg\">" : colText) + "</td>\n");
            }
            else
            {
                strBuilder.Append("<img border=\"0\" src=\"/Share/ImgLink/select.gif\" onclick=\"fanxuan()\"></td>\n");
            }
            this.StrColHead = this.StrColHead + strBuilder.ToString();
            this.ColMaxNum++;
            strBuilder = null;
        }
        /// <summary>
        /// 添加行头
        /// </summary>
        /// <param name="cssName">cssName</param>
        public void AddRowHead(string cssName)
        {
            System.Text.StringBuilder strBuilder = new StringBuilder();
            strBuilder.AppendFormat("  <tr class=\"{0}\">\n",cssName);
            strBuilder.Append(this.StrColHead);
            strBuilder.Append(" </tr>\n");
            this.StrRowHead = this.StrRowHead + strBuilder.ToString();
            strBuilder = null;
            StrColHead = "";
        }
        public void AddRowHead()
        {
            AddRowHead("RowHead");
        }
        public void AddHead(string content)
        {
            //格式:a/100,b/100,c/100
            string[] colHeadContent=content.Split(',');
            string[] colContent=new string[2];
            string colText="";
            string colWidth="";
            for (int i = 0; i < colHeadContent.Length;i++ )
            {
                colContent = colHeadContent.Split('/');
                colText=colContent[0];
                colWidth=colContent[1];
                AddColHead(colText, colWidth);
            }
            AddRowHead();
        }
        /// <summary>
        ///  添加列
        /// </summary>
        /// <param name="colText">列数据</param>
        /// <param name="isCenter">是否居中</param>
        public void AddCol(string colText, int isCenter)
        {
            System.Text.StringBuilder strBuilder = new StringBuilder();
            string centerString = isCenter.Equals(1) ? " align=\"center\"" : "";
            strBuilder.AppendFormat("      <td{0}>", centerString);
            if (this.IsAddImg && this.ColNum == 0)
            {
                strBuilder.Append(this.StrImg);
            }
            this.ColNum++;
            strBuilder.Append(" " + colText + " </td>\n");
            this.StrCol = this.StrCol + strBuilder.ToString();
            strBuilder = null;
        }
        public void AddCol(string colText)
        {
            AddCol(colText,0);
        }
        public void AddImgCol()
        {
            AddCol(WebUI.Link.ImgButton.Img("/Share/Images/tag.gif"),1);
        }
        public void AddBoxCol(string Id, string value, string isDisabled, string isChecked)
        {
            string dis = isDisabled.Equals("0") ? "disabled" : "";
            string ck = isChecked.Equals("1") ? "checked" : "";
            AddCol("<input type=\"checkbox\" Id=\""+Id+"\" name=\"CK_ID\" value=\"" + value + "\" " + dis + " " + ck + "class=\"checkbox\"/>", 1);
        }
        public void AddBoxCol(string value, string isDisabled,string isChecked)
        {
            string dis = isDisabled.Equals("0") ? "disabled" : "";
            string ck = isChecked.Equals("1") ? "checked" : "";
            AddCol("<input type=\"checkbox\" name=\"CK_ID\" value=\"" + value + "\" " + dis + " " + ck + "class=\"checkbox\"/>", 1);
        }
        public void AddBoxCol(string value)
        {
            AddBoxCol(value,"","");
        }
        /// <summary>
        /// 添加行
        /// </summary>
        /// <param name="cssName">cssName</param>
        public void AddRow(string cssName)
        {
            System.Text.StringBuilder strBuilder = new StringBuilder();
            strBuilder.AppendFormat(" <tr class=\"{0}\">\n", cssName);
            strBuilder.Append(this.StrCol+" </tr>\n");
            this.StrRow = this.StrRow + strBuilder.ToString();
            this.RowNum++;
            this.ColNum = 0;
            this.StrCol = "";
            strBuilder = null;
        }
        public void AddRow()
        {
            AddRow("Row"+this.RowNum%2);
        }
        public void AddEmptyRow(int pageSize)
        {
            for (int i = RowNum; i <= pageSize; i++)
            {
                for (int j = this.ColMaxNum; j > 0; j--)
                {
                    this.AddCol("  ", 0);
                }
                this.AddRow();
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="pageToolBar"></param>
        /// <returns></returns>
        public string AddPageToolBar(string pageToolBar)
        {
            System.Text.StringBuilder strBuilder = new StringBuilder();
            strBuilder.Append(" <tr class=\"trTool\">\n");
            strBuilder.Append("    <td colspan=\"" + this.ColMaxNum + "\" >");
            strBuilder.Append(pageToolBar);
            strBuilder.Append("</td>\n");
            strBuilder.Append(" </tr>\n");
            return strBuilder.ToString();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="width"></param>
        /// <param name="pageSize"></param>
        /// <param name="cssName"></param>
        /// <param name="pageToolBar"></param>
        public void AddTable(string width, int pageSize, string pageToolBar)
        {
            if (IsAddEmp)
            {
                AddEmptyRow(pageSize);
            }
            System.Text.StringBuilder strBuilder = new StringBuilder();
            strBuilder.Append("\n<table width=\"" + width + "\"  border=\"1\" bordercolordark=\"#FFFFFF\" bordercolorlight=\"#999999\" cellspacing=\"0\" cellpadding=\"0\" class=\"sortable\">\n");
            strBuilder.Append(StrRowHead + "\n");
            strBuilder.Append(this.StrRow + "\n");
            strBuilder.Append(AddPageToolBar(pageToolBar) + "\n");
            strBuilder.Append("<caption>" + this.StrCaption + "</caption>");
            strBuilder.Append("</table>\n");
            this.StrTable = this.StrTable + strBuilder.ToString();
            StrRow = "";
        }
        public void AddTable(string width)
        {
            System.Text.StringBuilder strBuilder = new StringBuilder();
            strBuilder.Append("\n<table width=\"" + width + "\"  border=\"1\" bordercolordark=\"#FFFFFF\" bordercolorlight=\"#999999\" cellspacing=\"0\" cellpadding=\"0\" class=\"sortable\">\n");
            strBuilder.Append(StrRowHead + "\n");
            strBuilder.Append(this.StrRow + "\n");
            strBuilder.Append("<caption>" + this.StrCaption + "</caption>");
            strBuilder.Append("</table>\n");
            this.StrTable = this.StrTable + strBuilder.ToString();
            StrRow = "";
        }
        /// <summary>
        ///
        /// </summary>
        public void Dispoint()
        {
            this.ColMaxNum = 0;
            this.ColNum = 0;
            this.RowNum = 0;
            this.StrCol = null;
            this.StrColHead = null;
            this.StrRow = null;
            this.StrRowHead = null;
            this.StrTable = null;
        }
    }
}


__________________________________________

/* ------------------------------------------------------------------
* CopyRight (C) 2008  西南交通大学唯易软件开发室  版权所有。
* 版权声明:该表功能为本工作室独立开发,如若您需要使用本软件请联系工作室。谢谢。
* 文 件 名:OnlyEasyBase.WebUI.Table.DataTable
* 功    能:根据数据库生成相关文件。
*
* 作    者:孙钦秋
* 创建日期:2008年01月06日
*
* 修改标志:
* 修改日期:
* 修改描述:

//-------------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Text;
namespace OnlyEasyBase.WebUI.Table
{
    public class DataTable
    {
        private string Query = "";
        private string Table = "";
        private string Where = "";
        private string Order = "";
        public int PageSize=15;
        public int TableWidth = 800;
        public string HeadC;
        public string RowC;
        public string OESQL = "";
        //[select] * [from] user [where] id='1' [order by] a desc
        private string[] row;
        private string[] head;
        public string LinkString = "";
        public string LinkPara = "";
        public bool isAddEmp = true;
        public string toolBar = "";
        public void Dispoint()
        {
            Query = null;
            Table = null;
            Where = null;
            Order = null;
            PageSize = 0;
            TableWidth = 0;
            HeadContent = null;
            RowContent = null;
            OESQL = null;
            row = null;
            head = null;
            LinkString = null;
            LinkPara = null;
        }
        private void SplitRow()
        {
            //转换表头
            head=HeadContent.Replace(" ","").Split(',');
            //转换Sql
            OESQL = OESQL.Replace("[select]", "");
            OESQL = OESQL.Replace("[from]", "|");
            OESQL = OESQL.Replace("[where]", "|");
            OESQL = OESQL.Replace("[order by]", "|");
            string[] sql = OESQL.Split('|');
            Query = sql[0];
            Table = sql[1];
            Where = sql[2];
            Order = sql[3];
            row = RowContent.Split('/');
        }
        /// <summary>
        /// 读取表格
        /// </summary>
        /// <param name="page"></param>
        public void GetTable(System.Web.UI.WebControls.Label lbl)
        {
            System.Web.UI.Page page = lbl.Page;
            lbl.CssClass = "tableView";
            //lbl.EnableViewState = false;
            SplitRow();
            DataBase.DataByPage DPG = new DataBase.DataByPage();
            WebUI.Table.Table tbl = new Table();
            DPG.PageSize = PageSize;
            //初始化数据
            tbl.IsAddEmp = isAddEmp;
            DPG.Query = Query;
            DPG.Table = Table;
            DPG.Order = Order;
            if (Where.Trim().Equals(""))
            {
                DPG.Where = " 1=1 " + OnlyEasyBase.WebPage.RequestToSql.GetWhere(page);
            }
            else
            {
                DPG.Where = Where + " " + OnlyEasyBase.WebPage.RequestToSql.GetWhere(page);
            }
            DPG.GetRs(page);
            //初始化表格
            tbl.AddHead(HeadContent);
            int i = 0;
            while (DPG.RecordSet.Read())
            {
                //判断第一列所加内容
                if (row[0].Equals("Img"))
                {
                    tbl.AddImgCol();
                }
                else if (row[0].Equals("Num"))
                {
                    tbl.AddCol("<b>"+((DPG.pageIndex-1)*DPG.PageSize +i+1)+"</b>",1);
                }
                else if (row[0].IndexOf("-")>0)
                {
                    tbl.AddBoxCol(DPG.RecordSet[row[0].Split('-')[0]].ToString(), DPG.RecordSet[row[0].Split('-')[1]].ToString(),"","");
                }
                else
                {
                    tbl.AddBoxCol(DPG.RecordSet[row[0]].ToString());
                }
                //第一列所加内容结束
                //开始加第二列之后的内容
                for (int m = 1; m < row.Length;m++)
                {
                    if (head[m].IndexOf("日期") >= 0)
                    {
                        tbl.AddCol(DateTime.Parse(DPG.RecordSet[row[m]].ToString()).ToString("yyyy-MM-dd"),1);
                    }
                    else if (head[m].IndexOf("时间") >= 0)
                    {
                        tbl.AddCol(DateTime.Parse(DPG.RecordSet[row[m]].ToString()).ToString("yyyy-MM-dd hhss"), 1);
                    }
                    else if (head[m].IndexOf("状态") >= 0)
                    {
                        tbl.AddCol(OnlyEasyBase.Common.StringPublic.GetBool(DPG.RecordSet[row[m]].ToString()), 1);
                    }
                    else
                    {
                        if (row[m].Substring(0, 1).Equals("@"))
                        {
                            tbl.AddCol(DPG.RecordSet[row[m].Substring(1)].ToString(),1);
                        }
                        else
                        {
                            tbl.AddCol(DPG.RecordSet[row[m]].ToString());
                        }
                    }
                }
                if (!LinkString.Equals(""))
                {
                    string[] linkPara = LinkPara.Split(',');
                    string link = "";
                    if (linkPara.Length > 0)
                    {
                        string[] linkFormat = new string[linkPara.Length];
                        for (int l = 0; l < linkPara.Length; l++)
                        {
                            linkFormat[l] = DPG.RecordSet[linkPara[l]].ToString();
                        }
                        link=string.Format(LinkString, linkFormat);
                    }
                    else
                    {
                        link = LinkString;
                    }
                    tbl.AddCol(link, 1);
                }
                tbl.AddRow();
                i++;
            }
            tbl.AddTable(TableWidth.ToString(), DPG.PageSize, toolBar.Equals("") ? DPG.PageToolBar : toolBar);
            lbl.Text = tbl.StrTable;
            lbl.EnableViewState = false;
            tbl.Dispoint();
            tbl = null;
            DPG.Dispose();
            tbl = null;
            Dispoint();
        }
    }
}
本帖被评分 1 次
 

回复: 我写的一个分页程序,顺被直接生成Table

虽然和生成器没关系  但是还是不错 支持一下。。最后希望楼主能够编写个示例程序。。让初学者可以借鉴学习
 

回复:我写的一个分页程序,顺被直接生成Table

看例子啊,你这样说,也看不出什么……
 
1  /  1  页   1 跳转

版权所有 动软.net代码生成器  Maticsoft  Sitemap

   Copyright © 2001-2008 Comsenz Inc.
Processed in 0.125 second(s) , 4 queries. 京ICP备06044726号
返顶部