/* ------------------------------------------------------------------
* 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 hh
ss"), 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();
}
}
}