频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发设计技术教程 -> Asp.Net教程 -> 在ASP 中实现ASP.Net 的DataGrid 功能(转载)

在ASP 中实现ASP.Net 的DataGrid 功能(转载)

作者:未知  来源:转载  发布时间:2005-7-25 21:17:26  发布人:acx

减小字体 增大字体

自从用贯了.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
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

%>

将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· 保安盗打单位电话充Q币 ..
· ASP中实现文件上传方法的..
· SQL Server数据库查询优..
· 黑客独家探秘二:中国黑..
· 用FW制作仿真软盘效果(2..
· Flash MX 2004新特性实例..
· 利用ASP脚本制作异步装载..
· 动态网页技术PHP关于coo..
· 实例讲解JSP Model2体系..
· 马云收编雅虎不留异己 买..
· 堵住ASP漏洞
· FrontPage网上筑巢手记—..
· 弹出菜单(纵向和横向效..
· ASP ActiveX 组件
· 可以近视替代remote scr..
· Fireworks 绘制时尚手机..
相关文章
· 解析在ASP.NET中调用存储过..
· 推荐文章:在ASP.NET中创建..
· 在ASP页里面注册DLL的VBScr..
· 在ASP.NET AJAX中别使用mod..
· 如何在ASP程序中使用Telnet..
· 在ASP.NET中自动给URL加上超..
· 在ASP中使用事务控制
· 在ASP.NET页面中实现数据棒..
· 在ASP中常见的错误80004005..
· 在ASP中使用SQL语句之7:ORD..
· 在ASP中列出数据库中的表名..
· 在asp聊天室里实现房间功能..
· 在ASP处理程序时,进度显示..
· 在asp中调用jsp
· 在ASP中如何将代码生成的文..
· 在ASP中使用Java类(Using J..
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号