日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

替 ASP.NET 的 Table 控件換裝

發布時間:2025/4/14 asp.net 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 替 ASP.NET 的 Table 控件換裝 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(本文撰寫於 ASP.NET 1.x 時期,但觀念、做法亦適用 ASP.NET 2.0)

在 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 依「儲存格」數值變化,動態顯示不同顏色


範例一:第一個 Table 控制項 (合併資料列)

<Html>
<Body>
<H2>特殊表格的製作</H2>
<ASP:Table?Runat="Server"?GridLines="Both"?CellPadding="4"?id="Table1"?HorizontalAlign="Center">?
<ASP:TableRow?Runat="Server">

<ASP:TableCell?Runat="Server"?Text="姓名"?BackColor="LightGreen"/>
<ASP:TableCell?Runat="Server"?Text="Stephen"/>
<ASP:TableCell?Runat="Server"?RowSpan="2">
  
<ASP:Image?Runat="Server"?ImageUrl="image/money.jpg"?Width="40"?Height="40"/>
</ASP:TableCell>

</ASP:TableRow>


<ASP:TableRow>

<ASP:TableCell?Runat="Server"?Text="電子郵件"?BackColor="LightGreen"/>
<ASP:TableCell?Runat="Server">
  
<ASP:HyperLink?Runat="Server"?Text="j2se@pchome.com.tw"?NavigateUrl="mailto:j2se@pchome.com.tw"/>
</ASP:Tablecell>

</ASP:TableRow>
</ASP:Table>
<p>

<ASP:Table?Runat="Server"?GridLines="Both"?CellPadding="4"?id="Table2"?HorizontalAlign="Center"?/>

</Body>
</Html>

上方的範例一當中,使用了 RowSpan (合併資料列),其為 TableCell 控件中內建的屬性,除此之外該控件還提供 ColumnSpan 屬性。

下方範例二的股票行情表,會依數據庫中撈出的數值,即時性地在 TableCell 中顯示不同顏色。您在使用上可依專案需求,將某些特定顯示功能寫成副程式或函數。


範例二:第二個 Table 控制項 (依「儲存格」數值變化,動態顯示不同顏色),執行畫面如上圖 2

<%@?Import?Namespace?=Namespace="System.Data"?%>
<%@?Import?Namespace?=Namespace="System.Data.OleDb"?%>

<script?Language="VB"?runat="server">

Sub?Page_Load()Sub?Page_Load(sender?As?Object,?e?As?EventArgs)?
 
Dim?myConn?As?OleDbConnection
 
Dim?myCmd?As?OleDbCommand?
 
Dim?myRd?As?OleDbDataReader

     …中間略…

 
'?DataReader?物件連結「股票行情表」資料表
 myRd?=?myCmd.ExecuteReader()

 
'?呼叫副程式,利用?DataReader?物件逐欄逐列讀取資料表,然後填入輸出用的表格
 OutputToTable(?myRd?)

 
'?關閉資料庫連線
 myConn.Close()
End?Sub


Sub?OutputToTable()Sub?OutputToTable(?Rd?As?OleDbDataReader?)
 
Dim?I?As?Integer
 
Dim?row?As?TableRow
 
Dim?cell?As?TableCell

 
'?將資料表的「抬頭」填入表格中?
 row?=?New?TableRow()
 row.BackColor?
=?Drawing.Color.Gold
 
For?I?=?0?To?Rd.FieldCount?-?1
  cell?
=?New?TableCell()
  cell.Text?
=?Rd.GetName(I)  '?將?DataReader?所讀取的第?I?欄欄位抬頭設定給?TableCell
  row.Cells.Add(?cell?)     '?將?TableCell?加入?TableRow?之中
 Next
 Table2.Rows.Add(?row?)

 
'?逐列讀出資料表,再將資料依序填入表格中
 While?Rd.Read()
  row?
=?New?TableRow()
  
For?I?=?0?To?Rd.FieldCount?-?1
   cell?
=?New?TableCell()
   cell.Text?
=?Rd.Item(I)   '?將?DataReader?所讀取的第?I?欄資料設定給?TableCell
   row.Cells.Add(?cell?)    '?將?TableCell?加入?TableRow?之中

   
If?(I=0)?Then
    cell.BackColor
=Drawing.Color.Goldenrod
    cell.ForeColor
=Drawing.Color.SteelBlue
   
End?IF

   
If?(I=Rd.FieldCount-4)?And?Val(cell.Text)>0?Then?
    cell.BackColor
=Drawing.Color.Red
    cell.ForeColor
=Drawing.Color.Pink?
   
ElseIf?(I=Rd.FieldCount-4)?And?Val(cell.Text)<0?Then?
    cell.BackColor
=Drawing.Color.LawnGreen
    cell.ForeColor
=Drawing.Color.GhostWhite
   
End?If

   
If?(I=Rd.FieldCount-3)?And?Val(cell.Text)>20?Then?
    cell.BackColor
=Drawing.Color.Pink
    cell.ForeColor
=Drawing.Color.Red?
   
End?If

   
If?(I=Rd.FieldCount-2)?And?Val(cell.Text)>17?Then?
    cell.BackColor
=Drawing.Color.Pink
    cell.ForeColor
=Drawing.Color.Red?
   
End?If

   
If?(I=Rd.FieldCount-1)?And?Val(cell.Text)>2000?Then?
    cell.BackColor
=Drawing.Color.Red
    cell.ForeColor
=Drawing.Color.Pink?
   
ElseIf?(I=Rd.FieldCount-1)?And?Val(cell.Text)>200?Then?
    cell.BackColor
=Drawing.Color.HotPink
    cell.ForeColor
=Drawing.Color.LightSteelBlue
   
End?If?
  
Next?
  Table2.Rows.Add(?row?)   
'?將?TableRow?加入?Table?之中
 End?While
End?Sub
?

</script>

在範例二中,ASP.NET 頁面用 DataReader 讀取資料,再把取得的資料填入 Table 控件中。您還可在範例二中,再加上「跨欄、跨列」的功能。至於還能達成哪些應用,則端看程序員的巧思了。

-------------------------------------------------
本帖的範例源碼下載點:
http://files.cnblogs.com/WizardWu/060106.zip

-------------------------------------------------
(本文在版工的舊 Blog 中,發表日期為 2006/01/06)
?

?

轉載于:https://www.cnblogs.com/WizardWu/archive/2008/06/27/1230833.html

總結

以上是生活随笔為你收集整理的替 ASP.NET 的 Table 控件換裝的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 我要色综合网 | 成人一区二区三区在线观看 | 精品亚洲成人 | 综合网色 | 久久久久区 | 国产精品69久久久久孕妇欧美 | 91久久影院 | 亚洲国产日韩欧美在线观看 | 久色视频| 亚洲爱视频 | jizz日本视频 | 国产三级福利 | 邻家有女4完整版电影观看 欧美偷拍另类 | 亚洲av综合色区无码一区 | 精品少妇人妻av免费久久久 | 99精品视频在线播放免费 | 成人小视频免费 | 欧美精品在线观看 | 日本少妇18p | 特黄特色特刺激免费播放 | 黄色观看网站 | 国产亚洲欧洲 | 日韩精品欧美在线 | 97在线国产| 清纯唯美亚洲色图 | 欧美一区二区三区在线免费观看 | 国产剧情久久久 | 99国产精品久久久 | 欧美欧美欧美欧美 | 九九热色 | 麻豆精品 | 黑人巨大精品欧美一区二区 | 好吊妞在线观看 | 男阳茎进女阳道视频大全 | 1024精品一区二区三区日韩 | 在线观看亚洲一区二区 | 黄色二级视频 | 九九免费 | 五月网| 国产在线视频不卡 | 亚洲第一狼人区 | 中文亚洲av片不卡在线观看 | 青青草精品在线视频 | 日韩区在线 | 被灌满精子的波多野结衣 | 超碰人人人人人 | 你懂的91| 野花视频免费在线观看 | 精品国产乱码久久久久久久软件 | 国产在线播放一区 | 九草在线视频 | 国产情侣酒店自拍 | 色偷偷噜噜噜亚洲男人的天堂 | 国产精品无码永久免费不卡 | 亚洲一级电影 | 91天堂在线视频 | 手机成人在线 | 欧美老肥妇做爰bbww | 成年人香蕉视频 | 视频在线观看91 | 中文精品在线 | 久久久免费高清视频 | 亚洲欧美日韩久久 | 一级色网站 | 在线亚洲色图 | 亚洲av日韩av在线观看 | 亚洲一区二区色图 | 美女视频黄是免费 | 亚洲手机在线观看 | 欧美黄色性视频 | 美女网站视频在线观看 | 欧美经典一区二区 | 日韩精品一区二区三区四区 | 日韩a级片 | 99国产精品自拍 | 天堂网中文字幕 | www.黄色一片 | 成人国产精品免费观看动漫 | 无码任你躁久久久久久久 | 牛牛精品视频 | 九月激情网 | 超碰在线播放97 | 中文字幕一区二区三区精华液 | 女主播在线观看 | 亚洲欧美日韩一区二区三区在线观看 | 69成人网 | 一女被多男玩喷潮视频 | 成人免费在线网址 | 熟妇高潮精品一区二区三区 | 色女人天堂| 亚洲AV午夜精品 | 天天插插插 | sm捆绑调教视频 | 精品国产欧美 | 久久蜜臀精品av | 99精品视频播放 | 国产精品偷伦视频免费观看了 | 国产乱码精品一区二区三区精东 | 波多野吉衣视频在线观看 |