|
因为有了比较成型的CMS,一直没有舍弃ASP,一直想用.net重写一下,是后话了。
jqGrid是一个优秀的基于jQuery的DataGrid框架,想必大伙儿也不陌生,网上基于ASP的资料很少,我提供一个,数据格式是json的: 、一个针对jqGrid的json类:这段代码似乎是由官网论坛的一些PHP中转化而来,我们存为json.asp,代码贴一下: 复制代码 代码如下: <% response.Charset="utf-8" '--------------------------------------- ' JSONClass类 ' 将Select语句的执行结果转换成JSON '------------------------------------------ Class JSONClass ' 定义类属性,默认为Private Dim SqlString ' 用于设置Select Dim JSON ' 返回的JSON对象的名称 Dim DBConnection ' 连接到数据库的Connection对象 ' 可以外部调用的公共方法 Public Function GetJSON () dim Rs dim returnStr dim i dim oneRecord ' 获取数据 Set Rs= Server.CreateObject("ADODB.Recordset") Rs.open SqlString,DBConnection,1,1 if page<>"" then epage=cint(page) if epage<1 then epage=1 if epage>rs.pagecount then epage=rs.pagecount else epage=1 end if rs.pagesize = rows rs.absolutepage = epage ' 生成JSON字符串 if Rs.eof=false and Rs.Bof=false then returnStr="{ total: "& rs.pagecount &", page: "& page &", records: "& rs.recordcount &", rows:[" for j=0 to rs.pagesize-1 if rs.bof or rs.eof then exit for ' ------- 'oneRecord = "{id:" & chr(34) &Rs.Fields(0).Value&chr(34)&",cell:["& chr(34) &Rs.Fields(0).Value&chr(34)&"," oneRecord = "{id:" & chr(34) &Rs.Fields(0).Value&chr(34)&",cell:["& chr(34) &Rs.Fields(0).Value&chr(34)&"," for i=1 to Rs.Fields.Count -1 'oneRecord=oneRecord & chr(34) &Rs.Fields(i).Name&chr(34)&":" oneRecord=oneRecord & chr(34) &Rs.Fields(i).Value&chr(34) &"," Next '去除记录最后一个字段后的"," oneRecord=left(oneRecord,InStrRev(oneRecord,",")-1) oneRecord=oneRecord & "]}," '------------ returnStr=returnStr & oneRecord Rs.MoveNext next ' 去除所有记录数组后的"," returnStr=left(returnStr,InStrRev(returnStr,",")-1) returnStr=returnStr & "]}" end if Rs.close set Rs=Nothing GetJSON=returnStr End Function '私用方法,在类中使用 Private Function check() End Function ' End Class %> 2、制作显示数据的asp文件,如:list.asp,代码如下 复制代码 代码如下: <!--#include file="conn.asp" --> <!--#include file="json.asp" --> <% dim page,rows,sidx,sord page = request.QueryString("page") 'page rows = request.QueryString("rows") 'pagesize sidx = request.QueryString("sidx") 'order by ?? sord = request.QueryString("sord") if page="" then page = 1 end if if rows = "" then rows = 10 end if if sidx = "" then sidx = "id" end if if sord = "" then sord ="asc" end if Dim strSearchOn, strField, strFieldData, strSearchOper, strWhere strSearchOn = Request("_search") If (strSearchOn = "true") Then strField = Request("searchField") If (strField = "id" Or strField = "Title" Or strField = "NickName") Then strFieldData = Request("searchString") strSearchOper = Request("searchOper") 'construct where strWhere = " Where " & strField Select Case strSearchOper Case "bw" : 'Begin With strFieldData = strFieldData & "%" strWhere = strWhere & " LIKE '" & strFieldData & "'" Case "eq" : 'Equal If(IsNumeric(strFieldData)) Then strWhere = strWhere & " = " & strFieldData Else strWhere = strWhere & " = '" & strFieldData & "'" End If Case "ne": 'Not Equal If(IsNumeric(strFieldData)) Then strWhere = strWhere & " <> " & strFieldData Else strWhere = strWhere & " <> '"& strFieldData &"'" End If Case "lt": 'Less Than If(IsNumeric(strFieldData)) Then strWhere = strWhere & " <" & strFieldData Else strWhere = strWhere & " <'"& strFieldData &"'" End If Case "le": 'Less Or Equal If(IsNumeric(strFieldData)) Then strWhere = strWhere & " <= " & strFieldData Else strWhere = strWhere & " <= '"& strFieldData &"'" End If Case "gt": 'Greater Than If(IsNumeric(strFieldData)) Then strWhere = strWhere & " > " & strFieldData Else strWhere = strWhere & " > '"& strFieldData &"'" End If Case "ge": 'Greater Or Equal If(IsNumeric(strFieldData)) Then strWhere = strWhere & " >= " & strFieldData Else strWhere = strWhere & " >= '"& strFieldData &"'" End If Case "ew" : 'End With strWhere = strWhere & " LIKE '%" & strFieldData & "'" Case "cn" : 'Contains strWhere = strWhere & " LIKE '%" & strFieldData & "%'" End Select End if End If server.ScriptTimeout=9000 dim a set a=new JSONClass a.Sqlstring="Select id,Title,NickName,Pwd,LastLoginTime From Admin"&strWhere&" "&"order by "& sidx & " " & sord a.dbconnection=conn response.Write(a.GetJSon()) conn.close() set conn = nothing %>
里面把搜索的代码涵盖了。这样基本实现了读,至于jqGrid中的editurl的文件,我们称其edit.asp,代码如下: 复制代码 代码如下: <%Option Explicit%> <!--#include file="config.asp"--> <% Dim strOper, strID, strNickName, strTitle, strPwd strOper = Request("oper") strID = Replace(Request("Id"),"'","''") strTitle = Replace(Request("Title"),"'","''") strNickName = Replace(Request("NickName"),"'","''") strPwd = Replace(Request("Pwd"),"'","''") Select Case strOper Case "add": 'Add Record strSQL = "Insert Into Admin (Title, NickName, Pwd,LastLoginTime) Values('"&strTitle&"', '"&strNickName&"', '"&strPwd&"',Now()) " Case "edit": 'Edit Record strSQL = "Update Admin Set Title = '"&strTitle&"', NickName = '"&strNickName&"', Pwd = '"&strPwd&"' Where id = "&strID Case "del": 'Delete Record strSQL = "Delete From Admin Where id = "&strID End Select 'response.Write strSQL Dim strSQL,rs Call OpenDB() Set rs = Conn.Execute(strSQL) Call CloseDB() %> 这是前台index.html代码 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>ASP_jqGrid_Test</title> <link rel="stylesheet" type="text/css" href="jquery-ui-1.7.2.custom.css"/> <link rel="stylesheet" type="text/css" href="jqgrid.css"/> <link rel="stylesheet" type="text/css" href="ui.multiselect.css"/> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/cn.js"></script> <script type="text/javascript" src="js/jqGrid.js"></script> </head> <body> <table id="DataGrid" class="scroll"></table> <div id="pager" class="scroll" style="text-align:center;"></div> </body> </html> <script type="text/javascript"> jQuery("#DataGrid").jqGrid({ url:'list.asp', datatype: "json", colNames:['ID','管理员账号','管理员昵称','密码','上次登录时间'], colModel :[ { name:'Id', index:'Id', width:50 }, { name:'Title', index:'Title', editable:true, editrules:{ required:true } }, { name:'NickName', index:'NickName', editable:true, editrules:{ required:true } }, { name:'Pwd', index:'Pwd', editable:true, edittype:'password', hidden:true, editoptions:{ size:20 }, editrules:{ edithidden:true } }, { name:'LastLoginTime', index:'LastLoginTime', align:'right', editrules:{ required:true } } ], caption:"管理员列表", imgpath:'/images', multiselect: true, rowNum:20, rowList:[10,20,30], pager: jQuery('#pager'), sortname: 'Id', viewrecords: true, sortorder: "desc", height:400, width:600, editurl:"edit.asp" }); $('#DataGrid').navGrid('#pager',{ refresh: true, edit: true, add: true, del: true, search: true, searchtext:"搜", edittext:"改",addtext:"添",deltext:"删" }); </script> jqGrid,好东西~~ |
|