在ASP 中实现ASP.Net 的DataGrid 功能
来源:互联网 发布:监控软件破解版 编辑:程序博客网 时间:2024/04/29 06:39
<%
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 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
DataSource.PageSize = PageSize
else
DataSource.PageSize = DataSource.RecordCount
end if
if CurPage = Empty then
CurPage = 1
end if
if CurPage < 1 then
DataSource.AbsolutePage = 1
end if
if CurPage >= DataSource.PageCount then
DataSource.AbsolutePage = DataSource.PageCount
end if
if CurPage >= 1 and CurPage <= DataSource.PageCount then
DataSource.AbsolutePage = CurPage
end if
for curRow = 1 to DataSource.PageSize
if DataSource.EOF then
Exit For
end if
Response.Write("<tr>")
for Each clm in Columns.Keys()
if Alternate = 0 then
tbStyle = NormalStyle & " " & ItemStyle(clm)
else
if curRow mod 2 = 0 then
tbStyle = AlternateStyle & " " & ItemStyle(clm)
else
tbStyle = NormalStyle & " " & ItemStyle(clm)
end if
end if
tdStart = "<td " & tbStyle & ">"
tdEnd = "</td>"
if Templates(clm) = Empty then
tbContent = DataSource(clm)
else
tbContent = Templates(clm)
Set regEx = New RegExp
regEx.Pattern= "{[A-Za-z0-9_-]+}"
regEx.IgnoreCase = True
regEx.Global = True
Set Matches=regEx.Execute(Templates(clm))
For each match in matches
On Error Resume Next
tbContent = Replace(tbContent,Match.Value, _DataSource(Mid(Match.Value,2,Len(Match.Value)-2)),1)
Next
end if
Response.Write(tdStart)
Response.Write(tbContent)
Response.Write(tdEnd)
Next
Response.Write("</tr>" & vbCrLF)
DataSource.MoveNext
Next
'Draw Pageing Row
if DataSource.PageCount > 1 and LCase(pageingStyle) <> "none" then
Dim i
response.write("<tr>")
response.write("<td colspan=" & Columns.Count & " " & PageingStyle & ">")
for i=1 to DataSource.PageCount
if i <> CurPage then
response.write("<a href='" & Request.ServerVariables("SCRIPT_NAME") & "?page=" & i & "'>" )
end if
response.write(i)
if i <> CurPage then
response.write("</a>")
end if
response.write(" ")
next
response.write("</td></tr>" & vbCrLf)
end if
'Draw Table end
Response.Write("</table>")
end sub
End Class
'users Like { UserID,LoginName,Password,RealName,Age,Gender,}
'initDB
'Rs.Open "Select * from users",Cn
'Dim tbGrid1
'Set tbGrid1 = New TBGrid
'Set tbGrid1.DataSource = Rs
'tbGrid1.Columns.add "LoginName","用户名"
'tbGrid1.ItemStyle.add "Password","align=right"
'tbGrid1.ItemStyle.add "修改","width=100"
'tbGrid1.AddTemplate "修改","<a href='aaa.asp?id={UserID}'><font color=red>{RealName}</font></a>"
'tbGrid1.Columns.add "Password","密码"
'tbGrid1.PageSize = 5
'tbGrid1.AllowPageing = true
'tbGrid1.PageingStyle = "align=right"
'tbGrid1.CurPage = CInt(Request("page"))
'tbGrid1.Show()
'CloseDB
%>
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 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
DataSource.PageSize = PageSize
else
DataSource.PageSize = DataSource.RecordCount
end if
if CurPage = Empty then
CurPage = 1
end if
if CurPage < 1 then
DataSource.AbsolutePage = 1
end if
if CurPage >= DataSource.PageCount then
DataSource.AbsolutePage = DataSource.PageCount
end if
if CurPage >= 1 and CurPage <= DataSource.PageCount then
DataSource.AbsolutePage = CurPage
end if
for curRow = 1 to DataSource.PageSize
if DataSource.EOF then
Exit For
end if
Response.Write("<tr>")
for Each clm in Columns.Keys()
if Alternate = 0 then
tbStyle = NormalStyle & " " & ItemStyle(clm)
else
if curRow mod 2 = 0 then
tbStyle = AlternateStyle & " " & ItemStyle(clm)
else
tbStyle = NormalStyle & " " & ItemStyle(clm)
end if
end if
tdStart = "<td " & tbStyle & ">"
tdEnd = "</td>"
if Templates(clm) = Empty then
tbContent = DataSource(clm)
else
tbContent = Templates(clm)
Set regEx = New RegExp
regEx.Pattern= "{[A-Za-z0-9_-]+}"
regEx.IgnoreCase = True
regEx.Global = True
Set Matches=regEx.Execute(Templates(clm))
For each match in matches
On Error Resume Next
tbContent = Replace(tbContent,Match.Value, _DataSource(Mid(Match.Value,2,Len(Match.Value)-2)),1)
Next
end if
Response.Write(tdStart)
Response.Write(tbContent)
Response.Write(tdEnd)
Next
Response.Write("</tr>" & vbCrLF)
DataSource.MoveNext
Next
'Draw Pageing Row
if DataSource.PageCount > 1 and LCase(pageingStyle) <> "none" then
Dim i
response.write("<tr>")
response.write("<td colspan=" & Columns.Count & " " & PageingStyle & ">")
for i=1 to DataSource.PageCount
if i <> CurPage then
response.write("<a href='" & Request.ServerVariables("SCRIPT_NAME") & "?page=" & i & "'>" )
end if
response.write(i)
if i <> CurPage then
response.write("</a>")
end if
response.write(" ")
next
response.write("</td></tr>" & vbCrLf)
end if
'Draw Table end
Response.Write("</table>")
end sub
End Class
'users Like { UserID,LoginName,Password,RealName,Age,Gender,}
'initDB
'Rs.Open "Select * from users",Cn
'Dim tbGrid1
'Set tbGrid1 = New TBGrid
'Set tbGrid1.DataSource = Rs
'tbGrid1.Columns.add "LoginName","用户名"
'tbGrid1.ItemStyle.add "Password","align=right"
'tbGrid1.ItemStyle.add "修改","width=100"
'tbGrid1.AddTemplate "修改","<a href='aaa.asp?id={UserID}'><font color=red>{RealName}</font></a>"
'tbGrid1.Columns.add "Password","密码"
'tbGrid1.PageSize = 5
'tbGrid1.AllowPageing = true
'tbGrid1.PageingStyle = "align=right"
'tbGrid1.CurPage = CInt(Request("page"))
'tbGrid1.Show()
'CloseDB
%>
- 在ASP 中实现ASP.Net 的DataGrid 功能
- 在ASP 中实现ASP.Net 的DataGrid 功能(转载)
- 在asp.net中实现datagrid checkbox 全选的方法
- 在ASP.net中是如何实现注销功能的?
- 在Asp.Net中实现类似DWR的功能
- 如何在ASP.NET中为DataGrid添加自动编号的功能
- ASp.net中DataGrid常用功能收藏
- ASp.net中DataGrid常用功能收藏
- 扩展ASP.NET中DataGrid的UI功能
- ASP.NET中利用DataGrid的自定义分页功能
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- .net自动更新
- 用 Eclipse 和 Ant 进行 Python 开发
- 在.NET中杀死Word,Excel等进程
- SQL无法连接
- 悠闲的一个早上
- 在ASP 中实现ASP.Net 的DataGrid 功能
- 再比较动态调用代码
- 超强存储过程
- 郁闷的心情
- 进行DLL注入的三种方法
- 软件小开发团体运用CMM思想进行过程改进
- 今天看到一个不错的漫画网站(E文)
- 代码生成器
- 《C#类设计手册》读书随笔