您的位置:首页 > 编程语言 > ASP

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.结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: