转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
ASP模仿asp.net的DataGrid         ★★★★

ASP模仿asp.net的DataGrid

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2239 更新时间:2009/4/23 10:40:54

自动生成表格,自动完成删除,编辑、填加、分页功能,自定义样式表头样式

代码用两个类来实现

一开始考虑得太多,功能想得太强大,通用性越强,asp类跑起来越慢,做到后来没兴趣,还有很多功能没有完成,如字段类型验证,显示图片、控件等,帖出代码供大这一起学习研究,有兴趣的可以将这些功能加上

示例:

set a = new DataGrid
''''a.Connstr="Provider=SQLOLEDB.1;User ID=sa;Password=servser;Initial Catalog=temp_blue;Data Source=server;Connect Timeout=30;Auto Translate=True;Packet Size=4096;"
a.Connstr="Provider=Microsoft.Jet.OLEDB.4.0;"&" Data Source="&server.mappath("test.mdb") ''''连接ACCSS字符串
a.SQLString="select * from table1" ''''生成datagrid所显示的记录集的sql语句
a.isAddnew = 1 ''''是否可以填加新记录
a.Table = "table1" ''''datagrid控制的主表
a.UniqueField = "ID"  ''''标志字段,所有记录不重复整型即可
a.PagePosition = "down" ''''分页显示位置,up上面,down下面 updown上下 ,其它为不显示
a.pagesize = 5 ''''每页显示记录数
a.Pagenumber = 10 ''''显示页数

a.BorderColor="#ff0000" ''''默认为效果图显示

a.BackGround="#00ff00" ''''默认为效果图显示

a.BorderWidth=1 默认为1

a.
set b1 = new column
b1.Field = "id"  ''''此列所绑定的数据库字段
b1.Title = "标志"  ''''标题
b1.Align = "center" '''' 对齐方式
a.AddColumn(b1)   ''''把此列插入到datagrid
set b2 = new column
b2.Field="firstname"
b2.Title="姓"
a.AddColumn(b2)

set b3 = new column
b3.Field = "lastname"
b3.Title = "名"
a.AddColumn(b3)

set b4 = new column
b4.Field = "logintimes"
b4.Title = "登陆次数"
b4.ReadOnly = true  ''''设为只读,不会出现在编辑框中和新增记录中
a.AddColumn(b4)

set b5 = new column
b5.Title="编辑"
b5.Columntype ="edit"  ''''编辑列
b5.EditCommandText = "编辑"  ''''编辑按钮文本
a.AddColumn(b5)

set b6 = new column
b6.align = "center"
b6.Width = 200
b6.Columntype = "delete"
b6.DeleteCommandText = "删除按钮"
b6.Title ="删除"
a.AddColumn(b6)
a.CreateGrid()

set b1 = nothing
set b2 = nothing
set b3 = nothing
set b4 = nothing
set b5 = nothing
set b6 = nothing

类文件如下:

<%Class DataGrid
 Private pages
 Private strSQLString
 Public  Connstr
 Private Columns
 Private index
 Private strUniqueField,strTable
 Private rs
 Private strCellspacing,strCellpadding,strCssClass
 Private strBorderColorDark,strBorderColorLight,strBackGroundColor
 Private intBorderWidth
 Private strHeadStyle,strHeadBackgroudColor
 Private strStyle,strAlternateStyle
 Private UniqueKey,dg_action,currPage
 Private actionURL,pageURL,operationURL,formURL
 Public PagePosition,Pagesize,Pagenumber
 
 Public isAddnew
 
 Private Sub Class_Initialize()
  set Columns = Server.CreateObject("Scripting.Dictionary")
  index = 0
  Pagesize = 10
  Pagenumber = 10
  PagePosition = "updown"
  strSQLString = Session("DSN")
  uniquekey = Request("uniquekey")
  dg_action = Request("dg_action")
  currPage = Request("Page")
  actionURL = Request.ServerVariables("Script_name") & "?page=" & currPage
  if dg_action= "edit" then formURL = actionURL& "&dg_action=update&uniquekey="&uniquekey
  operationURL = Request.ServerVariables("Script_name") & "?page=" & currPage& "&uniquekey=" & uniquekey
  pageURL = Request.ServerVariables("Script_name")&"?1=1"
  if currPage = "" or isnull(currPage) then currPage = 1
  
  strBorderColorDark ="#f7f7f7"
  strBorderColorLight = "#cccccc"
  strBackgroundColor = "#f7f7f7"
  strHeadBackgroudColor = "#F2F2F2"
  intBorderWidth  = 1
  strAlternateStyle ="bgcolor=#f6f6f6"
  isAddnew = 1
  Set rs = Server.CreateObject("Adodb.Recordset")
  
  End Sub
 
  Private Sub Class_Terminate()
  rs.close
  set rs = nothing
  set Columns  = nothing
     End Sub
    
    Public Property Get SQLString()
        SQLString = strSQLString
 End Property 
 
 Public Property Let SQLString(Value)
  strSQLString = Value
 End Property
 
 
 Public Property Let Style(Value)
        strStyle = Value()
 End Property
 
 Public Property Get Style()
        Style = strStyle
 End Property 
 
 Public Property Let UniqueField(Value)
        strUniqueField = lcase(Value)
 End Property
 
 Public Property Get UniqueField()
        UniqueField = strUniqueField
 End Property
 
 Public Property Let Table(Value)
        strTable = lcase(Value)
 End Property
 
 Public Property Get Table()
        Table = strTable
 End Property
 
 Public Property Let DbConn(Value)
  strConn = Value
 End Property
 
 Public Property Get Version()
  Version = "1.0"
 End Property

 Public Property Let Cellspacing(Value)
  strcellspacing = Value
 End Property
 
 Public Property Get Cellspacing()
  Cellspacing = strcellspacing
 End Property
 
 Public Property Let cellpadding(Value)
  strcellpadding = Value
 End Property
 
 Public Property Get cellpadding()
  cellpadding = strCellspacing
 End Property
 
 
 Public Property Let CssClass(Value)
  strCssClass = Value
 End Property
 
 Public Property Get CssClass()
  CssClass = strCssClass
 End Property
 
 Public Property Let BorderColor(value)
  strBorderColorDark = value
 End Property
 
 Public Property Get BorderColor()
  BorderColor = strBorderColorDark
 End Property
 
 Public Property Let BackGround(value)
   strBorderColorDark = value
   strBackgroundColor = value
 End Property
 
 Public Property Get BackGround()
  BackGround = strBorderColorLight
 End Property
 
 Public Property Let BorderWidth(value)
  intBorderWidth = value
 End Property
 
 Public Property Get BorderWidth()
  BorderWidth = intBorderWidth
 End Property
 
 Public Property Get nColumns(intIndex)
  nkeys = Columns.Keys
  nItems = Columns.Items
  for i = 0 to Columns.Count - 1
   if intIndex = nkeys(i) then
    set tmp = nItems(i)
   end if
  next
  set nColumns = tmp
 End Property
 

 Private Function page(totalpage,pagenumber,thisPage)
   MinPage = thisPage - pagenumber/2
  if MinPage <= 0 then MinPage = 1
  ''''if MinPage + pagenumber/2 > totalpage then Maxpage = totalpage else Maxpage = MinPage + pagenumber
  for i = MinPage to MinPage + pagenumber -1
   if i <= totalpage then
    if cint(thisPage)<> cint(i) then
     strtemp = strtemp & "<a href="&pageURL&"&page=" & i &">" & i & "</a> "
    else
     strtemp = strtemp & i&" "
    end if
   else
    page = strtemp
    Exit Function
   end if
  Next
  page = strtemp
 End Function
 
 Public Sub CreateGrid()
  nkeys = Columns.Keys
  nItems = Columns.Items
  If dg_action="update" then
   dim strsql
   strsql = "update "& table & " set "
   dim j
   j=0
   For i = 0 to index - 1
    if nItems(i).Columntype<>"edit" and nItems(i).Columntype <> "delete" and not nItems(i).readonly and nItems(i).field<>uniquefield then
     if j <> 0 then strsql = strsql & ","
     Select case nItems(i).DataType
     Case "text"
      strsql = strsql & nItems(i).field & "=''''" & Request(nItems(i).field)&

[1] [2] [3] [4]  下一页


[Web开发]一个关于ASP运行时间计算的代码  [Web开发]ASP:检测含有中文字符串的实际长度
[Web开发]asp 中英文字符长度检测判断函数  [Web开发]安全维护 IIS asp 站点的高级技巧
[C语言系列]NET 中C#的switch语句的语法  [Access]ASP&SQL让select查询结果随机排序的实现方法
[Web开发]ASP字符串截取函数  [Web开发][asp]关键词只替换一次的写法
[Web开发]Asp无组件生成缩略图方法详解  [Web开发]asp编程中优化数据库方法详解
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台