动态生成表格
2011-08-31 08:56
239 查看
ASP.NET中用后台代码创建DataTable和HTML表格
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebHTML_Table._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HTML表格测试</title>
<style type="text/css">
tr
{
line-height:22px;
}
A
{
color:#669966;
}
.table_tr_Over
{
background-color:#F6F6F6;
}
.table_tr_Out
{
background-color:#FFFFFF;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:PlaceHolder ID="plhTable" runat="server"></asp:PlaceHolder>
</div>
</form>
</body>
</html>
后台文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Web.UI.HtmlControls;
namespace WebHTML_Table
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Initialize();
}
}
/// <summary>
/// 初始化
/// </summary>
private void Initialize()
{
//获取数据集
DataTable tableSource = getTable();
if (null == tableSource)
{
return;
}
//创建HTML表格
HtmlTable tableHTML = new HtmlTable();
//初始化表格
tableHTML.Width = "100%";
tableHTML.CellPadding = 0;
tableHTML.CellSpacing = 0;
tableHTML.Border = 1;
//HTML行
HtmlTableRow rowHTML = new HtmlTableRow();
//HTML单元格
HtmlTableCell cellHTML = new HtmlTableCell();
//HTML<A>元素
HtmlAnchor AnchorHTML;
//第一步:将表格的标题获取出来
for (int i = 0; i < tableSource.Columns.Count; i++)
{
cellHTML = new HtmlTableCell();
cellHTML.Align = "center";
cellHTML.VAlign = "middle";
cellHTML.InnerHtml = "<b>" + tableSource.Columns[i].ToString() + "</b>";
rowHTML.Cells.Add(cellHTML);
tableHTML.Rows.Add(rowHTML);
}
//第二步:添加表格的内容,遍历数据集
foreach (DataRow item in tableSource.Rows)
{
//创建新的行
rowHTML = new HtmlTableRow();
//添加特效事件
rowHTML.Attributes.Add("onmouseover", "this.className='table_tr_Over'");
rowHTML.Attributes.Add("onmouseout", "this.className='table_tr_Out'");
//依次循环tableSource中某一行的每一列,跟踪一下就明白
for (int i = 0; i < tableSource.Columns.Count; i++)
{
//创建新的元素
AnchorHTML = new HtmlAnchor();
AnchorHTML.HRef = "Index.aspx";
//可根据item[i]或item["Name"]来获取数据
AnchorHTML.InnerHtml = item[tableSource.Columns[i].ToString()].ToString();
//创建新的单元格
cellHTML = new HtmlTableCell();
//添加元素
cellHTML.Controls.Add(AnchorHTML);
//添加单元格
rowHTML.Cells.Add(cellHTML);
}
//向HTML表格中添加行
tableHTML.Rows.Add(rowHTML);
}
//向PlaceHolder容器中添加表格
plhTable.Controls.Add(tableHTML);
}
/// <summary>
/// 获取数据集
/// </summary>
/// <returns></returns>
private DataTable getTable()
{
//创建表
DataTable tableInfo = new DataTable();
//列
DataColumn dcName = new DataColumn("Name", Type.GetType("System.String"));
DataColumn dcEmail = new DataColumn("Email", Type.GetType("System.String"));
DataColumn dcAddress = new DataColumn("Address", Type.GetType("System.String"));
//添加列
tableInfo.Columns.Add(dcName);
tableInfo.Columns.Add(dcEmail);
tableInfo.Columns.Add(dcAddress);
for (int i = 0; i < 10; i++)
{
//行
DataRow dr = tableInfo.NewRow();
dr["Name"] = "Name" + i.ToString();
dr["Email"] = "Email" + i.ToString();
dr["Address"] = "Address" + i.ToString();
//添加行
tableInfo.Rows.Add(dr);
}
return tableInfo;
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebHTML_Table._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HTML表格测试</title>
<style type="text/css">
tr
{
line-height:22px;
}
A
{
color:#669966;
}
.table_tr_Over
{
background-color:#F6F6F6;
}
.table_tr_Out
{
background-color:#FFFFFF;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:PlaceHolder ID="plhTable" runat="server"></asp:PlaceHolder>
</div>
</form>
</body>
</html>
后台文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Web.UI.HtmlControls;
namespace WebHTML_Table
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Initialize();
}
}
/// <summary>
/// 初始化
/// </summary>
private void Initialize()
{
//获取数据集
DataTable tableSource = getTable();
if (null == tableSource)
{
return;
}
//创建HTML表格
HtmlTable tableHTML = new HtmlTable();
//初始化表格
tableHTML.Width = "100%";
tableHTML.CellPadding = 0;
tableHTML.CellSpacing = 0;
tableHTML.Border = 1;
//HTML行
HtmlTableRow rowHTML = new HtmlTableRow();
//HTML单元格
HtmlTableCell cellHTML = new HtmlTableCell();
//HTML<A>元素
HtmlAnchor AnchorHTML;
//第一步:将表格的标题获取出来
for (int i = 0; i < tableSource.Columns.Count; i++)
{
cellHTML = new HtmlTableCell();
cellHTML.Align = "center";
cellHTML.VAlign = "middle";
cellHTML.InnerHtml = "<b>" + tableSource.Columns[i].ToString() + "</b>";
rowHTML.Cells.Add(cellHTML);
tableHTML.Rows.Add(rowHTML);
}
//第二步:添加表格的内容,遍历数据集
foreach (DataRow item in tableSource.Rows)
{
//创建新的行
rowHTML = new HtmlTableRow();
//添加特效事件
rowHTML.Attributes.Add("onmouseover", "this.className='table_tr_Over'");
rowHTML.Attributes.Add("onmouseout", "this.className='table_tr_Out'");
//依次循环tableSource中某一行的每一列,跟踪一下就明白
for (int i = 0; i < tableSource.Columns.Count; i++)
{
//创建新的元素
AnchorHTML = new HtmlAnchor();
AnchorHTML.HRef = "Index.aspx";
//可根据item[i]或item["Name"]来获取数据
AnchorHTML.InnerHtml = item[tableSource.Columns[i].ToString()].ToString();
//创建新的单元格
cellHTML = new HtmlTableCell();
//添加元素
cellHTML.Controls.Add(AnchorHTML);
//添加单元格
rowHTML.Cells.Add(cellHTML);
}
//向HTML表格中添加行
tableHTML.Rows.Add(rowHTML);
}
//向PlaceHolder容器中添加表格
plhTable.Controls.Add(tableHTML);
}
/// <summary>
/// 获取数据集
/// </summary>
/// <returns></returns>
private DataTable getTable()
{
//创建表
DataTable tableInfo = new DataTable();
//列
DataColumn dcName = new DataColumn("Name", Type.GetType("System.String"));
DataColumn dcEmail = new DataColumn("Email", Type.GetType("System.String"));
DataColumn dcAddress = new DataColumn("Address", Type.GetType("System.String"));
//添加列
tableInfo.Columns.Add(dcName);
tableInfo.Columns.Add(dcEmail);
tableInfo.Columns.Add(dcAddress);
for (int i = 0; i < 10; i++)
{
//行
DataRow dr = tableInfo.NewRow();
dr["Name"] = "Name" + i.ToString();
dr["Email"] = "Email" + i.ToString();
dr["Address"] = "Address" + i.ToString();
//添加行
tableInfo.Rows.Add(dr);
}
return tableInfo;
}
}
}
相关文章推荐
- js中动态生成表格
- PHP--动态生成sql查询表格
- JS实现动态生成表格并提交表格数据向后端
- 使用ajax,jq克隆动态生成表格
- 利用table动态生成表格并填充内容/和panel做一个可控制显示/隐藏的小玩意
- MVC&JQuery如何根据List动态生成表格
- [C#]用C#动态生成Word文档并将数据填入Word表格中
- asp.net动态表格生成(收藏)
- [转]Javascript动态生成表格的性能调优
- 父页面动态生成表格,点击按钮将子页面数据回调到父页面的表格中
- 后台动态生成table表格
- JS动态生成表格
- jQuery动态生成不规则表格(前后端)
- 随机数字动态生成2行8列表格
- 动态生成表格制作
- 一段动态生成表格的JSP代码讲解
- 根据要显示的字段个数动态生成表格标签table及内容
- Asp.Net Table控件动态生成表格操作实例(代码调试通过)
- Javascript动态生成表格的性能调优
- HTML动态生成指定行数和列数的可编辑表格