ASP.net Table 控件应用
2014-04-06 15:36
465 查看
前阵子为在页面动态输出table而纠结好久,后来ASP.net Table 控件解决了这个难题,现在吧自己的一点经验分享出来。希望能给需要的人有点帮助。
首先,我们先了解Table 控件的属性:
1、CellPadding属性:用于设置表中单元格的边框和内容之间的距离(以像素为单位)。默认为-1(未设置)。
2、CellSpacing属性:用于设置表中单元格之间的距离(以像素为单位)。默认为-1(未设置)。
3、Rows 属性:用于获取表行的集合。主要属性和方法如下:
●Count属性:表示Rows集合的元素个数(即表的行数);
●Add方法:用于添加一个新的TableRow对象(即向表中添加一行);
● AddAt方法:用于在指定的位置添加一个新的TableRow对象(即向表中插入一行);
● Remove方法:用于移除一个TableRow对象(即从表中移除一行);
● RemoveAt方法:用于移除指定索引值的TableRow对象(即从表中移除指定索引值的行);
● Clear方法:清除Rows集合中的所有元素(即清除表中的所有行)。可用Row(i)表示Rows集合中的第i个元素(从0算起)
4、GridLines属性:用于指定Table控件中显示的格线样式,可能的样式值有:
● None:不显示单元格边框;
● Horizontal:只显示单元格的水平框;
● Vertical:只显示单元格的垂直边框;
● Both:同时显示水平边框和垂直边框。
5、HorizontalAlign属性:
用于设置表中内容的水平对齐方式。可能的对齐方式如下:
Center:居中;
Left:左对齐;
NoSet:未设置;
Right:右对齐;
Justify:表的内容均可展开,与左右边距对齐。
Tablelrow对象的主要属性:
1、Cells属性:表示表行中单元格的集合。Cell集合的主要属性和方法如下:
Count属性:表示Cells集合的元素个数(即列数);
Add方法:用于添加一个新的TableCell对象(即向表中添加一个单元格);
AddAt方法:用于在指定的位置添加一个新的TableCell对象(即向表行中插入一个单元格);
Remove方法:用于移除一个TableCell对象(即从表行中移除一个单元格);
RemoveAt方法:用于移除指定索引值的TableCell对象(即从表行中移除指定索引值的单元格);
Clear方法:清除Cells集合中的所有元素(即清除表行中的所有单元格);
可用Cells(j)表示Cells集合中的第j个元素(从0算起)。
2、HorizontalAlign属性:
用于设置行内容的水平对齐方式。可能的对齐方式值同Table控件的HorizontalAlign属性值。
3、VerticalAlign属性:用于指定行内容的垂直对齐方式。可能的对齐方式值有:
NotSet:未设置对齐方式;
Top:行内容与行的上边缘对齐;
Middle:行内容的垂直方向居中对齐;
Bottom:行内容与行的下边缘对齐。
TableCell对齐的主要属性
1、ColumnSpan属性:表示该单元格在呈现出的表中所跨越的列数。例如,如果ColumnSpan属性值为2,表示该单元格在Table控件中占两列。
2、HorizontalAlign属性:用于设置列内容的水平对齐方式,其属性值及含义同Table控件的HorizaontalAlign属性。
3、RowSpan属性:表示该单元格在呈现出的表中所跨越的行数。例如,如果RowSpan属性值为2,表示该单元格在Table控件中占两行。
4、VerticalAlign属性:用于指定列内容的垂直对齐方式,其属性值及含义同TableRow对象的HorizontalAlign属性值类似,不同的是它指定列内容为垂直对齐方式。
5、Wrap属性:属性值决定是否允许单元格内容在单元格内换行。如果对允许换行,则属性值为True,否则为False。
以上是Table 控件的属性介绍,下面是我的一个实例:
1.添加table的表头:
/// <summary>
/// 添加表单表头
/// </summary>
/// <param name="tb">表格</param>
/// <param name="title">标题数组</param>
/// <param name="BorderColor">边框颜色</param>
/// <param name="BorderWidth">边框宽度</param>
/// <param name="Bold">是否粗体</param>
/// <param name="Size">字体大小</param>
/// <param name="Width">单元格宽度</param>
/// <param name="RomBackColor">行背景颜色</param>
public void AddTableHeader(ref Table tb, string[] title, System.Drawing.Color BorderColor, int BorderWidth, bool Bold, int Size, int[] Width, System.Drawing.Color RomBackColor)
{
TableHeaderRow tHeadRow = new TableHeaderRow();
for (int i = 0; i < title.Count(); i++)
{
TableHeaderCell tHeadCell1 = new TableHeaderCell();
tHeadCell1.Text = title[i].ToString();
tHeadCell1.BorderColor = System.Drawing.Color.Black;
tHeadCell1.BorderWidth = 1;
tHeadCell1.Font.Bold = true;
tHeadCell1.Font.Size = 15;
tHeadCell1.Width = Width[i];
tHeadRow.Cells.Add(tHeadCell1);
}
tHeadRow.BackColor = RomBackColor;
tb.Rows.Add(tHeadRow);
}
2.向table添加一行
/// <summary>
/// 向指定的表格添加行数据
/// </summary>
/// <param name="tb">表格</param>
/// <param name="dt">需要添加的行的数据</param>
/// <param name="BorderColor">边框颜色</param>
/// <param name="windth">边框宽度</param>
/// <param name="ha">左右对齐格式</param>
/// <param name="RowSpan">跨行数</param>
/// <param name="SpanCell">设置跨越的单元格</param>
public void AddTableRow(ref Table tb, string[] arr, System.Drawing.Color BackColor, int BorderWidth, HorizontalAlign ha, int RowSpan, string SpanCell)
{
string[] str=null;
if (!string.IsNullOrEmpty(SpanCell))
{
str = SpanCell.Split(',');
}
TableRow newTr = new TableRow();
for (int i = 0; i < arr.Count(); i++)
{
TableCell newTC1 = new TableCell();
newTC1.Text = arr[i].ToString();
newTC1.BorderWidth = BorderWidth;
if (str != null)
{
for (int j = 0; j < str.Count(); j++)
{
if ((i + 1) == Convert.ToInt32(str[j]))
{
newTC1.RowSpan = RowSpan;
newTC1.BackColor = System.Drawing.Color.White;
break;
}
else
newTC1.BackColor = BackColor;
}
}
else { newTC1.BackColor = BackColor; }
newTC1.HorizontalAlign = ha;
newTr.Cells.Add(newTC1);
}
tb.Rows.Add(newTr);
}
3.调用方法:
tbBuild.AddTableRow(ref tbAnswerCountRpt, arr, System.Drawing.Color.GreenYellow, 1, HorizontalAlign.Center, Convert.ToInt32(dt.Rows[i]["anscount"]), "1,2");
4.结果:
首先,我们先了解Table 控件的属性:
1、CellPadding属性:用于设置表中单元格的边框和内容之间的距离(以像素为单位)。默认为-1(未设置)。
2、CellSpacing属性:用于设置表中单元格之间的距离(以像素为单位)。默认为-1(未设置)。
3、Rows 属性:用于获取表行的集合。主要属性和方法如下:
●Count属性:表示Rows集合的元素个数(即表的行数);
●Add方法:用于添加一个新的TableRow对象(即向表中添加一行);
● AddAt方法:用于在指定的位置添加一个新的TableRow对象(即向表中插入一行);
● Remove方法:用于移除一个TableRow对象(即从表中移除一行);
● RemoveAt方法:用于移除指定索引值的TableRow对象(即从表中移除指定索引值的行);
● Clear方法:清除Rows集合中的所有元素(即清除表中的所有行)。可用Row(i)表示Rows集合中的第i个元素(从0算起)
4、GridLines属性:用于指定Table控件中显示的格线样式,可能的样式值有:
● None:不显示单元格边框;
● Horizontal:只显示单元格的水平框;
● Vertical:只显示单元格的垂直边框;
● Both:同时显示水平边框和垂直边框。
5、HorizontalAlign属性:
用于设置表中内容的水平对齐方式。可能的对齐方式如下:
Center:居中;
Left:左对齐;
NoSet:未设置;
Right:右对齐;
Justify:表的内容均可展开,与左右边距对齐。
Tablelrow对象的主要属性:
1、Cells属性:表示表行中单元格的集合。Cell集合的主要属性和方法如下:
Count属性:表示Cells集合的元素个数(即列数);
Add方法:用于添加一个新的TableCell对象(即向表中添加一个单元格);
AddAt方法:用于在指定的位置添加一个新的TableCell对象(即向表行中插入一个单元格);
Remove方法:用于移除一个TableCell对象(即从表行中移除一个单元格);
RemoveAt方法:用于移除指定索引值的TableCell对象(即从表行中移除指定索引值的单元格);
Clear方法:清除Cells集合中的所有元素(即清除表行中的所有单元格);
可用Cells(j)表示Cells集合中的第j个元素(从0算起)。
2、HorizontalAlign属性:
用于设置行内容的水平对齐方式。可能的对齐方式值同Table控件的HorizontalAlign属性值。
3、VerticalAlign属性:用于指定行内容的垂直对齐方式。可能的对齐方式值有:
NotSet:未设置对齐方式;
Top:行内容与行的上边缘对齐;
Middle:行内容的垂直方向居中对齐;
Bottom:行内容与行的下边缘对齐。
TableCell对齐的主要属性
1、ColumnSpan属性:表示该单元格在呈现出的表中所跨越的列数。例如,如果ColumnSpan属性值为2,表示该单元格在Table控件中占两列。
2、HorizontalAlign属性:用于设置列内容的水平对齐方式,其属性值及含义同Table控件的HorizaontalAlign属性。
3、RowSpan属性:表示该单元格在呈现出的表中所跨越的行数。例如,如果RowSpan属性值为2,表示该单元格在Table控件中占两行。
4、VerticalAlign属性:用于指定列内容的垂直对齐方式,其属性值及含义同TableRow对象的HorizontalAlign属性值类似,不同的是它指定列内容为垂直对齐方式。
5、Wrap属性:属性值决定是否允许单元格内容在单元格内换行。如果对允许换行,则属性值为True,否则为False。
以上是Table 控件的属性介绍,下面是我的一个实例:
1.添加table的表头:
/// <summary>
/// 添加表单表头
/// </summary>
/// <param name="tb">表格</param>
/// <param name="title">标题数组</param>
/// <param name="BorderColor">边框颜色</param>
/// <param name="BorderWidth">边框宽度</param>
/// <param name="Bold">是否粗体</param>
/// <param name="Size">字体大小</param>
/// <param name="Width">单元格宽度</param>
/// <param name="RomBackColor">行背景颜色</param>
public void AddTableHeader(ref Table tb, string[] title, System.Drawing.Color BorderColor, int BorderWidth, bool Bold, int Size, int[] Width, System.Drawing.Color RomBackColor)
{
TableHeaderRow tHeadRow = new TableHeaderRow();
for (int i = 0; i < title.Count(); i++)
{
TableHeaderCell tHeadCell1 = new TableHeaderCell();
tHeadCell1.Text = title[i].ToString();
tHeadCell1.BorderColor = System.Drawing.Color.Black;
tHeadCell1.BorderWidth = 1;
tHeadCell1.Font.Bold = true;
tHeadCell1.Font.Size = 15;
tHeadCell1.Width = Width[i];
tHeadRow.Cells.Add(tHeadCell1);
}
tHeadRow.BackColor = RomBackColor;
tb.Rows.Add(tHeadRow);
}
2.向table添加一行
/// <summary>
/// 向指定的表格添加行数据
/// </summary>
/// <param name="tb">表格</param>
/// <param name="dt">需要添加的行的数据</param>
/// <param name="BorderColor">边框颜色</param>
/// <param name="windth">边框宽度</param>
/// <param name="ha">左右对齐格式</param>
/// <param name="RowSpan">跨行数</param>
/// <param name="SpanCell">设置跨越的单元格</param>
public void AddTableRow(ref Table tb, string[] arr, System.Drawing.Color BackColor, int BorderWidth, HorizontalAlign ha, int RowSpan, string SpanCell)
{
string[] str=null;
if (!string.IsNullOrEmpty(SpanCell))
{
str = SpanCell.Split(',');
}
TableRow newTr = new TableRow();
for (int i = 0; i < arr.Count(); i++)
{
TableCell newTC1 = new TableCell();
newTC1.Text = arr[i].ToString();
newTC1.BorderWidth = BorderWidth;
if (str != null)
{
for (int j = 0; j < str.Count(); j++)
{
if ((i + 1) == Convert.ToInt32(str[j]))
{
newTC1.RowSpan = RowSpan;
newTC1.BackColor = System.Drawing.Color.White;
break;
}
else
newTC1.BackColor = BackColor;
}
}
else { newTC1.BackColor = BackColor; }
newTC1.HorizontalAlign = ha;
newTr.Cells.Add(newTC1);
}
tb.Rows.Add(newTr);
}
3.调用方法:
tbBuild.AddTableRow(ref tbAnswerCountRpt, arr, System.Drawing.Color.GreenYellow, 1, HorizontalAlign.Center, Convert.ToInt32(dt.Rows[i]["anscount"]), "1,2");
4.结果:
相关文章推荐
- 不拖控件的ASP.NET之二-一般处理程序基础
- 不拖控件的ASP.NET之三-模板引擎
- Asp.net—response对象与request对象
- [转]asp三级select菜单联动(加数据库)
- ASP.NET MVC5 网站开发实践(二) Member区域–管理列表、回复及删除
- Asp.net response对象与request对象使用介绍
- Asp.Net MVC4 系列-- 进阶篇之路由(1)
- asp.net各种验证控件的用法详解
- ASP.NET中七种页面跳转的方法
- 现在的eWebEditor在极速浏览器中不兼容,ASP换代xheditor的过程遇到的问题。
- Asp.net web Control Enable 属性设置
- Asp.net web Control Enable 属性设置
- ASP.NET MVC标记最新的发布新闻或文章
- (转)ASP.NET版本的Kindeditor插件的使用(同步)
- ASP.NET中gridview、datalist、repeater、FormView、DetailsView的区别详解
- 【Asp.net之旅】--数据绑定控件之ListView
- 实现NeatUpload大文件上传和个性显示进度条
- asp: win7 Request 对象 错误 'ASP 0104 : 80004005'
- asp.net 页面间传值方法小结 (转)
- Raspberry pi 串口传送文件总结