asp.net|datagrid 自從用貫了.Net的DataGrid就再也懶得去用ASP畫表格了,於是想了一個折中的辦法,訪照DataGrid的功能寫了一個TBGrid 類,這樣可以輕鬆的重用代碼.比起每次都得重複勞動方便多了.希望能給用得到的人帶去一些方便.用法很簡單,看後面的例子便一目瞭然了.有什麼不完善的地方希望大家有和我討論.
<%
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Programming By Smartpig '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Class TBGrid
public DataSource '資料來源
public style '表格總風格
public HeadStyle '表頭風格
public HeadItemStyle '表頭單獨風格
public itemStyle '儲存格獨立網路
public Columns '需要顯示的列元素
public Alternate '是否交替風格
public AlternateStyle '偶數行風格
public NormalStyle '正常風格
public DefaultStyle '預設風格簇
public PageSize '頁大小
public CurPage '當前頁
public AllowPageing '是否分頁
public PageingStyle '頁數風格
Private Templates '自訂單元項
'內容之間的關係
'Columns.add "Field","HeadText"
'AddTemplate("HeadText",Template)
'itemStyle.add "Field","style:adsasd"
'DataSource(Columns.Keys(i))
Private Sub Class_Initialize ' 設定 Initialize 事件。
Set itemStyle = CreateObject("Scripting.Dictionary")
Set HeadItemStyle= CreateObject("Scripting.Dictionary")
Set Columns = CreateObject("Scripting.Dictionary")
Set Templates = CreateObject("Scripting.Dictionary")
Set DataSource = CreateObject("ADODB.Recordset")
Alternate = 0
End Sub
Private Sub Class_Terminate ' 設定 Terminate 事件。
Set itemStyle = Nothing
Set HeadItemStyle = Nothing
Set Columns = Nothing
Set DataSource = Nothing
End Sub
Private Sub InitTable()
'Set FieldsNum = DataSource.Fields.Count
'Set RowsNum = DataSource.RecordCount
if Columns.Count = 0 then
For i = 0 to DataSource.Fields.Count -1
Columns.add DataSource.Fields(i).Name,DataSource.Fields(i).Name
response.Write(DataSource.Fields(i).Name)
Next
end if
if IsEmpty(Style) and IsEmpty(NormalStyle) then
DefaultStyle = 1
end if
if PageSize = Empty then
PageSize = 10
end if
select Case DefaultStyle
Case 1
Style ="border=1 cellpadding=2 cellspaccing=0 borderColor=#000000 style=""Border-collapse:collapse;font-size:12px"""
Alternate = 1
HeadStyle = "Height=25 bgColor=#CCCCCC"
AlternateStyle = "bgColor=#EEEEEE height=20"
NormalStyle = "height=20"
Case Else
End Select
End sub
public Sub AddTemplate(ByVal ColumnName,ByVal Template)
Columns.add ColumnName,ColumnName
Templates.add ColumnName,Template
End Sub
public Sub Show()
InitTable()
Dim tableStr
Dim tdStart,tdEnd,tbStyle,tbContent
Dim curRow
Dim clm
Dim regEx,Match,Matches
tableStr = "<table " & style & ">" & vbCrLF
'Draw Table Head
Response.Write(tableStr)
Response.Write("<tr>")
for Each clm in Columns.Keys()
tbStyle = HeadStyle & " " & HeadItemStyle(clm)
tdStart = "<td " & tbStyle & ">"
tdEnd = "</td>"
Response.Write(tdStart)
Response.Write(Columns(clm))
Response.Write(tdEnd)
Next
Response.Write("</tr>" & vbCrLF)
'Draw Table items
curRow = 1
if AllowPageing <> Empty then