- <%
- '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ' Programming By Smartpig '
- '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- Class TBGrid
- public DataSource '数据源
- public style '表格总风格
- public HeadStyle '表头风格
- public HeadItemStyle '表头单独风格
- public itemStyle '单元格独立网络
- public HeadSort '表头是否显示排序功能
- public Columns '需要显示的列元素
- public Alternate '是否交替风格
- public AlternateStyle '偶数行风格
- public NormalStyle '正常风格
- public DefaultStyle '默认风格簇
- public PageSize '页大小
- public AllowPageing '是否分页
- public PageingStyle '页数风格
- Private Templates '自定义单元项
- private CurPage '当前页
- private PageStart '页面开始运行时间
- '内容之间的关系
- 'Columns.add "Field","HeadText"
- 'AddTemplate("HeadText",Template)
- 'itemStyle.add "Field","style:adsasd"
- 'HeadSort.add "Field",True
- 'DataSource(Columns.Keys(i))
- Private Sub Class_Initialize ' 设置 Initialize 事件。
- Set itemStyle = CreateObject("Scripting.Dictionary")
- Set HeadSort = 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
- PageStart = Timer
- End Sub
- Private Sub Class_Terminate ' 设置 Terminate 事件。
- Set itemStyle = Nothing
- Set HeadSort = 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
- Else
- DefaultStyle = Style
- end if
- CurPage = CInt(Request.QueryString("page"))
- if CurPage = "" then
- CurPage = 1
- End If
- if PageSize = Empty then
- PageSize = 10
- end if
- select Case DefaultStyle
- Case 1
- Style ="align=center border=0 cellpadding=4 cellspacing=1 bgcolor='#cccccc'"
- Alternate = 1
- HeadStyle = "Height=25 style=""background-color:#006699;color:#ffffff"""
- AlternateStyle = "bgColor=#ffffff height=25"
- NormalStyle = "height=25 bgcolor=#f5f5f5"
- AllowPageing = true
- tbGrid1.PageingStyle = "bgcolor='#f5f5f5' align='right'"
- Case 2
- Style ="align=center border=0 cellpadding=4 cellspacing=1 bgcolor='#cccccc'"
- Alternate = 0
- HeadStyle = "Height=25 style=""background-color:#ffffff"""
- AlternateStyle = "bgColor=#ffffff height=25"
- NormalStyle = "height=25 bgcolor=#ffffff"
- 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 = "<th "&tbStyle&">"
- tdEnd = "</th>" & vbCrLf
- Response.Write(tdStart)
- '加入表头排序功能
- 'Code by Redsun
- 'Date:2005-1-17
- If HeadSort(clm) Then
- Response.Write Sort(clm,Columns(clm))
- Else
- Response.Write(Columns(clm))
- End If
- 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 < 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>" & vbCrLf
- 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,EndPage,StartPage
- response.write("<tr>")
- response.write("<td colspan=" & Columns.Count & " " & PageingStyle & ">")
- '改进分页功能
- 'Code by Redsun
- 'Date:2005-1-17
- If CurPage>4 Then
- If CurPage+2<DataSource.PageCount Then
- StartPage = CurPage-2
- EndPage = CurPage+2
- Else
- StartPage = DataSource.PageCount-4
- EndPage = DataSource.PageCount
- End If
- Else
- StartPage = 1
- If DataSource.PageCount>5 Then
- EndPage = 5
- Else
- EndPage = DataSource.PageCount
- End If
- End If
- If CurPage>1 Then
- Response.Write "<a title='首页' href='"&GetUrl("page")&"page=1'><font face=webdings>9</font></a> "
- Response.Write "<a title='上页' href='"&GetUrl("page")&"page="&CurPage-1&"'><font face=webdings>3</font></a> "
- Else
- Response.Write "<font face=webdings>9</font> "
- Response.Write "<font face=webdings>3</font> "
- End If
- For i=StartPage to EndPage
- if i <> CurPage then
- response.write("<a title='第"&i&"页' href='"&GetUrl("page")&"page="&i&"'>"&i&"</a> ")
- Else
- response.write("<b>"&i&"</b> ")
- End if
- next
- If CurPage<DataSource.PageCount Then
- Response.Write "<a title='下页' href='"&GetUrl("&page&")&"page="&CurPage+1&"'><font face=webdings>4</font></a> "
- Response.Write "<a title='尾页' href='"&GetUrl("&page&")&"page="&DataSource.PageCount&"'><font face=webdings>:</font></a> "
- Else
- Response.Write "<font face=webdings>4</font> "
- Response.Write "<font face=webdings>:</font> "
- End If
- Response.Write " [共"&DataSource.RecordCount&"条] ["&PageSize&"条/页] [共"&DataSource.PageCount&"页]"
- Response.Write " PageExecute:"&Round((Timer-PageStart)*1000,2)&" MS"
- response.write("</td></tr>" & vbCrLf)
- End if
- 'Draw Table end
- Response.Write("</table>")
- End sub
- '====================================================================
- '获取当前Url参数的函数
- 'Codeing by Redsun
- '====================================================================
- Private Function GetUrl(RemoveList)
- Dim ScriptAddress, M_ItemUrl, M_item
- ScriptAddress = CStr(Request.ServerVariables("SCRIPT_NAME"))&"?"'取得当前地址
- M_ItemUrl = ""
- For Each M_item In Request.QueryString
- If InStr(RemoveList,M_Item)=0 Then
- M_ItemUrl = M_ItemUrl & M_Item &"="& Server.URLEncode(Request.QueryString(""&M_Item&"")) & "&"
- End If
- Next
- GetUrl = ScriptAddress & M_ItemUrl
- End Function
- '=============================
- '实现列表排序
- '返回Url参数并动态改变排序方式
- '参数:需要进行排序的字段名,显示的名称
- '=============================
- Private Function Sort(SortStr,DispName)
- If SortStr = "" Or DispName="" Then Exit Function
- Sort = GetUrl("SOrder,SSort")
- SSort = UCase(Request.QueryString("SSort"))
- If SSort = "DESC" Then
- SSort = "ASC"
- Else
- SSort = "DESC"
- End If
- Sort = "<a class='headhref' href='"&Sort&"SOrder="&SortStr&"&SSort="&SSort&"'>"&DispName&SortType(SortStr)&"</a>"
- End Function
- '-----------------------------------------------
- '标识排序列为升序还是降序方式
- '参数:排序列字段名称
- '-----------------------------------------------
- Private Function SortType(FieldName)
- Dim SOrderName
- SOrderName = Request.QueryString("SOrder")
- If SOrderName<>FieldName Then Exit Function
- Dim SSortImg
- SSortImg = Request.QueryString("SSort")
- SortType = "<img src='/OrderFormSystem/images/"&SSortImg&".gif' border='0'>"
- End Function
- 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.HeadSort.add "LoginName",True
- tbGrid1.Columns.add "Password","密码"
- tbGrid1.AddTemplate "修改","<a href='aaa.asp?id={UserID}'><font color=red>{RealName}</font></a>"
- tbGrid1.ItemStyle.add "Password","align=right"
- tbGrid1.ItemStyle.add "修改","width=100"
- tbGrid1.PageSize = 5
- tbGrid1.AllowPageing = true
- tbGrid1.PageingStyle = "align=right"
- tbGrid1.Show()
- 'CloseDB
- %>
ASP数据岛操作类
2019-10-18 11:20asp代码网 ASP教程
ASP数据岛操作类,需要的朋友可以参考一下.
延伸 · 阅读
- 2019-10-18ASP下操作Excel技术总结分析
- 2019-10-18ASP生成柱型体,折线图,饼图源代码
- 2019-10-18ASP调用SQL SERVER存储程序
- 2019-10-18ASP调用带参数存储过程的几种方式
- 2019-10-18asp输出bmp
- 2019-10-18ASP连接数据库的全能代码
精彩推荐
- ASP教程
使用asp下的adodb.stream 下载文件而不是打开
在浏览器的地址栏里直接输入一个doc或xls或jpg的文件的url路径,那么该文件会直接显示在浏览器里。而在很多时候我们希望能直接弹出下载提示框让用户下...
- ASP教程
反SPAM新思路—换Z-BLOG的验证码!
最近我们一些Z-BLOGGER都在想做个什么插件拦住SPAM,当然解决方法也不是没有,就是弄个超强的服务器,可惜搞不起。那我们只好从SPAMMER的角度来想了。 懂...
- ASP教程
ASPWebPack 代码 提供下载
ASPWebPack 代码 提供下载...
- ASP教程
asp 标记字符串中指定字符变色不区分大小写
今天遇到这种问题,单纯的使用replace函数不行,他会改变原有的字符串的大小写,在网上找到相关的代码,自己备份下...
- ASP教程
asp结合fso实现文件或文件夹创建删除等操作的函数
asp+fso实现文件或文件夹检测是否存在,创建,删除的函数 ...
- ASP教程
asp中创建多级目录的两段代码
asp中创建多级目录的两段代码 ...
- ASP教程
基于ASP实现QQ在线查询功能
这篇文章给大家介绍使用asp实现qq在线查询功能,涉及到的知识点有xmlhttp读取腾讯网站相应的html代码获取qq头像。对qq在线查询感兴趣的朋友可以参考下本...
- ASP教程
ASP强制刷新网页和判断文件地址实例代码
这篇文章主要介绍了ASP强制刷新网页和判断文件地址实例代码,需要的朋友可以参考下...