在 ASP.NET 1.0 中,最火红的资料显示控件非 DataGrid 莫属 (ASP.NET 2.0 的 GridView 亦同),其可显示储存在 Web server 记忆体中,DataSet/DataTable 裡的「表格式资料」。但在 ASP.NET 页面中要处理「表格式资料」,事实上还有另一种较不起眼的 Table 控件 (不同於 DataTable)。该「显示型」Table 控件虽然内建的功能有限,但自由度反而较高,可由程序员自行撰写程式码去设计表格的外观,包括:可「跨栏、跨列」即时显示从数据库捞出的资料;以及自订依每个「储存格 (TableCell)」裡的数值不同,动态显示不同的顏色。所以 Table 控件等於是一个「空心的」显示型控件,很多特性和方法它都不提供,必须由程序员手工打造,但也因此少掉许多包袱,并可能创作出比其它控件更强大的功能。
不过透过 Table 控件显示的「表格式资料」,无法在 Post-back 后保存下来,表格内容必须在每次 Post-back 后再重新建构。根据 MSDN Library 的说法,若预期会进行大量的修改,建议改用 DataList 或 DataGrid 控件来代替 Table 控件。
图 1 Table 控件结构图
上图 1 为 Table 控制项的物件结构,每一个「储存格」等於一个 TableCell 物件,同一列的所有 TableCell 构成一个 TableRow 物件,而所有 TableRow 物件构成一整个 Table 控件。
下图 2 是版工以两种不同写法,所绘製出的两个 Table 控件。程式码 (VB.NET/ASP.NET 1.x) 可由本帖最下方的超连结下载。
图 2 依「储存格」数值变化,动态显示不同顏色