.Net中生成二維的表格的代碼 分享
更新時(shí)間:2013年07月24日 10:58:30 作者:
找了很久才找到的在.NET中生成二維表格的代碼,不敢獨(dú)享,現(xiàn)在就貼出來(lái)給大家看看,相信對(duì)大家有所幫助。
代碼如下:
void Page_Load(object o, EventArgs e)
...{
DataTable dt = GetData(); //assume GetData returns the DataTable
//probably better to use Hashtable for depts and months too, but to keep the order, let's use ArrayList
string sSeparator = ":";
ArrayList alDept = new ArrayList(); //種類(lèi)
ArrayList alMonth = new ArrayList(); //代碼
Hashtable ht = new Hashtable();
foreach (DataRow dr in dt.Rows)
{
string sDept = dr["c"].ToString();
string sMonth2 = dr["p"].ToString();
//將產(chǎn)地代碼轉(zhuǎn)換為產(chǎn)地名稱(chēng)
string sMonth = GetData2(sMonth2);
if (!alDept.Contains(sDept))
alDept.Add(sDept);
if (!alMonth.Contains(sMonth))
alMonth.Add(sMonth);
ht[sDept+ sSeparator + sMonth] = dr["a"];
}
TableRow tr = new TableRow();
TableCell tc = new TableCell();
//tc.Text = " ";
//tr.Cells.Add(tc);
foreach (string sDept in alDept)
{
int i=0; //用于計(jì)算某一種類(lèi)的數(shù)量
foreach (string sMonth in alMonth)
{
if(ht[sDept+ sSeparator + sMonth]==null)
{
i=i+0;
}
else
{
i = i + int.Parse(ht[sDept+ sSeparator + sMonth].ToString());
}
}
tc = new TableCell();
tc.Text= sDept+"("+i+")";
tr.Cells.Add(tc);
}
/**//*foreach (string sDept in alDept)
{
tc = new TableCell();
tc.Text= sDept;
tr.Cells.Add(tc);
} */
Table1.Rows.Add(tr);
foreach (string sMonth in alMonth)
{
tr = new TableRow();
/**//*tc = new TableCell();
tc.Text = sMonth;
tr.Cells.Add(tc);*/
foreach (string sDept in alDept)
{
tc = new TableCell();
if(ht[sDept+ sSeparator + sMonth]==null)
{
tc.Text=sMonth+"(0)";
}
else
{
tc.Text = sMonth+"("+ ht[sDept+ sSeparator + sMonth].ToString()+")";
}
tr.Cells.Add(tc);
}
Table1.Rows.Add(tr);
}
}
Web 窗體設(shè)計(jì)器生成的代碼#region Web 窗體設(shè)計(jì)器生成的代碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該調(diào)用是 ASP.NET Web 窗體設(shè)計(jì)器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**////
/// 設(shè)計(jì)器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內(nèi)容。
///
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
public DataTable GetData()
{
StatisticsB stat=new StatisticsB();
DataSet dataset=stat.byStone();
return dataset.Tables["stat"];
}
//取得名稱(chēng)列表
public string GetData2(string statid)
{
StatisticsB stat=new StatisticsB();
return stat.changeToName(statid);
}
復(fù)制代碼 代碼如下:
void Page_Load(object o, EventArgs e)
...{
DataTable dt = GetData(); //assume GetData returns the DataTable
//probably better to use Hashtable for depts and months too, but to keep the order, let's use ArrayList
string sSeparator = ":";
ArrayList alDept = new ArrayList(); //種類(lèi)
ArrayList alMonth = new ArrayList(); //代碼
Hashtable ht = new Hashtable();
foreach (DataRow dr in dt.Rows)
{
string sDept = dr["c"].ToString();
string sMonth2 = dr["p"].ToString();
//將產(chǎn)地代碼轉(zhuǎn)換為產(chǎn)地名稱(chēng)
string sMonth = GetData2(sMonth2);
if (!alDept.Contains(sDept))
alDept.Add(sDept);
if (!alMonth.Contains(sMonth))
alMonth.Add(sMonth);
ht[sDept+ sSeparator + sMonth] = dr["a"];
}
TableRow tr = new TableRow();
TableCell tc = new TableCell();
//tc.Text = " ";
//tr.Cells.Add(tc);
foreach (string sDept in alDept)
{
int i=0; //用于計(jì)算某一種類(lèi)的數(shù)量
foreach (string sMonth in alMonth)
{
if(ht[sDept+ sSeparator + sMonth]==null)
{
i=i+0;
}
else
{
i = i + int.Parse(ht[sDept+ sSeparator + sMonth].ToString());
}
}
tc = new TableCell();
tc.Text= sDept+"("+i+")";
tr.Cells.Add(tc);
}
/**//*foreach (string sDept in alDept)
{
tc = new TableCell();
tc.Text= sDept;
tr.Cells.Add(tc);
} */
Table1.Rows.Add(tr);
foreach (string sMonth in alMonth)
{
tr = new TableRow();
/**//*tc = new TableCell();
tc.Text = sMonth;
tr.Cells.Add(tc);*/
foreach (string sDept in alDept)
{
tc = new TableCell();
if(ht[sDept+ sSeparator + sMonth]==null)
{
tc.Text=sMonth+"(0)";
}
else
{
tc.Text = sMonth+"("+ ht[sDept+ sSeparator + sMonth].ToString()+")";
}
tr.Cells.Add(tc);
}
Table1.Rows.Add(tr);
}
}
Web 窗體設(shè)計(jì)器生成的代碼#region Web 窗體設(shè)計(jì)器生成的代碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該調(diào)用是 ASP.NET Web 窗體設(shè)計(jì)器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**////
/// 設(shè)計(jì)器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內(nèi)容。
///
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
public DataTable GetData()
{
StatisticsB stat=new StatisticsB();
DataSet dataset=stat.byStone();
return dataset.Tables["stat"];
}
//取得名稱(chēng)列表
public string GetData2(string statid)
{
StatisticsB stat=new StatisticsB();
return stat.changeToName(statid);
}
您可能感興趣的文章:
- 使用c#在word文檔中創(chuàng)建表格的方法詳解
- asp.net下用Aspose.Words for .NET動(dòng)態(tài)生成word文檔中的數(shù)據(jù)表格的方法
- asp.net 動(dòng)態(tài)生成表格
- Jquery 動(dòng)態(tài)生成表格示例代碼
- js動(dòng)態(tài)生成指定行數(shù)的表格
- 用按鈕觸發(fā)Javascript動(dòng)態(tài)生成一個(gè)表格的代碼
- 用js實(shí)現(xiàn)的一個(gè)根據(jù)內(nèi)容自動(dòng)生成表格的函數(shù)
- 用js+xml自動(dòng)生成表格的東西
- 將php數(shù)組輸出html表格的方法
- PHP 簡(jiǎn)易輸出CSV表格文件的方法詳解
- php動(dòng)態(tài)實(shí)現(xiàn)表格跨行跨列實(shí)現(xiàn)代碼
- C#實(shí)現(xiàn)動(dòng)態(tài)生成表格的方法
相關(guān)文章
.Net之微信小程序獲取用戶(hù)UnionID的實(shí)現(xiàn)
這篇文章主要介紹了.Net之微信小程序獲取用戶(hù)UnionID的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09ASP.NET Core擴(kuò)展庫(kù)之Http通用擴(kuò)展庫(kù)的使用詳解
這篇文章主要介紹了ASP.NET Core擴(kuò)展庫(kù)之Http通用擴(kuò)展庫(kù)的使用詳解,幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下2021-04-04VS 2015開(kāi)發(fā)跨平臺(tái)手機(jī)應(yīng)用的配置教程
這篇文章主要給大家介紹了關(guān)于VS 2015開(kāi)發(fā)跨平臺(tái)手機(jī)應(yīng)用配置的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12IIS故障(Connections_Refused)問(wèn)題分析及處理
這幾天某地市Web服務(wù)器連續(xù)多次出現(xiàn)故障問(wèn)題(Connections_Refused),正好借這個(gè)案例向大家詳細(xì)介紹下,需要了解的朋友可以參考下2012-12-12C#數(shù)據(jù)綁定控件中的DataSource屬性淺談
使用該屬性指定用來(lái)填充Repeater控件的數(shù)據(jù)源。DataSource可以是任何System.Collections.IEnumerable對(duì)象, 如用于訪問(wèn)數(shù)據(jù)庫(kù)的System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable、數(shù)組或IListSource對(duì)象2013-02-02