Por ter um CMS relativamente maduro, nunca desisti do ASP. Sempre quis reescrevê-lo usando .net, mas isso é uma história para outra hora. jqGrid é uma excelente estrutura DataGrid baseada em jQuery, com a qual todos devem estar familiarizados. Há muito poucas informações baseadas em ASP na Internet. Fornecerei uma.
, uma classe json para jqGrid: Este código parece ter sido convertido de algum PHP no fórum do site oficial. Salvamos como json.asp e colamos o código:
Copie o código do código da seguinte forma:
<%
resposta.Charset=utf-8
'------------------------------------------
'Classe JSONClass
' Converte o resultado da execução da instrução Select em JSON
'----------------------------------------------------------
ClasseJSONClasse
'Define os atributos da classe, o padrão é Privado
Dim SqlString 'usado para definir Select
Dim JSON 'O nome do objeto JSON retornado
Dim DBConnection 'Objeto de conexão ao banco de dados
'Métodos públicos que podem ser chamados externamente
Função Pública GetJSON()
escurecer Rs
dim returnStr
escurecer eu
escurecer um registro
'Obter dados
Definir Rs= Server.CreateObject(ADODB.Recordset)
Rs.open SqlString,DBConnection,1,1
se página<> então
epage=cint(página)
se epage<1 então epage=1
se epage>rs.pagecount então epage=rs.pagecount
outro
epágina=1
terminar se
rs.pagesize = linhas
rs.absolutepage=epage
'Gera string JSON
se Rs.eof=false e Rs.Bof=false então
returnStr={ total: & rs.pagecount &, página: & página &, registros: & rs.recordcount &, linhas:[
para j = 0 para rs.pagesize-1
se rs.bof ou rs.eof então saia para
'------
'oneRecord = {id: & chr(34) &Rs.Fields(0).Value&chr(34)&,cell:[& chr(34) &Rs.Fields(0).Value&chr(34)&,
umRecord = {id: & chr(34) &Rs.Fields(0).Value&chr(34)&,célula:[& chr(34) &Rs.Fields(0).Value&chr(34)&,
para i=1 para Rs.Fields.Count -1
'oneRecord=oneRecord & chr(34) &Rs.Fields(i).Nome&chr(34)&:
oneRecord=oneRecord & chr(34) &Rs.Fields(i).Value&chr(34) &,
Próximo
'Depois de remover o último campo do registro,
oneRecord = left(oneRecord,InStrRev(oneRecord,,)-1)
umRegistro=umRegistro & ]},
'------------
returnStr = returnStr & oneRecord
Rs.MovePróximo
próximo
'Depois de remover todos os arrays de registros,
returnStr=esquerda(returnStr,InStrRev(returnStr,,)-1)
returnStr=returnStr & ]}
terminar se
Rs.fechar
definir Rs=Nada
GetJSON=returnStr
Função final
'Método privado, usado na classe
Verificação de função privada()
Função final
'
Fim da aula
%>
2. Crie um arquivo asp que exiba dados, como: list.asp, o código é o seguinte
Copie o código do código da seguinte forma:
<!--#include arquivo=conn.asp -->
<!--#incluir arquivo=json.asp -->
<%
página escura, linhas, sidx, sord
página = request.QueryString(página) 'página
linhas = request.QueryString(rows) 'tamanho da página
sidx = request.QueryString(sidx) 'ordenar por ??
sord = request.QueryString(sord)
se página = então página = 1 fim se
se linhas = então linhas = 10 fim se
se sidx = então sidx = id fim se
se sord = então sord =asc fim se
Dim strSearchOn, strField, strFieldData, strSearchOper, strWhere
strSearchOn = Solicitação(_pesquisa)
Se (strSearchOn = verdadeiro) Então
strField = Solicitação(searchField)
Se (strField = id Ou strField = Título ou strField = NickName) Então
strFieldData = Solicitação(stringdepesquisa)
strSearchOper = Solicitação(searchOper)
'construir onde
strWhere = Onde & strField
Selecione Caso strSearchOper
Caso bw: 'Comece com
strFieldData = strFieldData &%
strWhere = strWhere & LIKE ' & strFieldData & '
Caso eq: 'Igual
If(IsNumeric(strFieldData)) Então
strOnde = strOnde & = & strFieldData
Outro
strOnde = strOnde & = '& strFieldData & '
Terminar se
Caso ne: 'Não é igual
If(IsNumeric(strFieldData)) Então
strOnde = strOnde & <> & strFieldData
Outro
strWhere = strWhere & <> '& strFieldData &'
Terminar se
Caso lt: 'Menos que
If(IsNumeric(strFieldData)) Então
strOnde = strOnde & < & strFieldData
Outro
strOnde = strOnde & <'& strFieldData &'
Terminar se
Caso le: 'Menos ou Igual
If(IsNumeric(strFieldData)) Então
strOnde = strOnde & <= & strFieldData
Outro
strOnde = strOnde & <= '& strFieldData &'
Terminar se
Caso gt: 'Maior que
If(IsNumeric(strFieldData)) Então
strOnde = strOnde & > & strFieldData
Outro
strOnde = strOnde & > '& strFieldData &'
Terminar se
Caso ge: 'Maior ou Igual
If(IsNumeric(strFieldData)) Então
strOnde = strOnde & >= & strFieldData
Outro
strOnde = strOnde & >= '& strFieldData &'
Terminar se
Caso ew: 'Terminar com
strWhere = strWhere & LIKE '% & strFieldData &'
Caso cn: 'Contém
strWhere = strWhere & LIKE '% & strFieldData & %'
Finalizar seleção
Terminar se
Terminar se
servidor.ScriptTimeout=9000
escurecer um
definir a=nova JSONClass
a.Sqlstring=Selecione id,Título,Apelido,Pwd,LastLoginTime de Admin&strWhere& &ordenar por & sidx & & sord
a.dbconnection=conn
resposta.Write(a.GetJSon())
conexão.close()
definir conn = nada
%>
O código de pesquisa é abordado nele. Isso basicamente implementa a leitura. Quanto ao arquivo editurl no jqGrid, nós o chamamos de edit.asp.
Copie o código do código da seguinte forma:
<%Opção Explícita%>
<!--#include arquivo=config.asp-->
<%
Dim strOper, strID, strNickName, strTitle, strPwd
strOper = Solicitação(oper)
strID = Substituir(Solicitação(Id),','')
strTítulo = Substituir(Request(Título),','')
strNickName = Substituir(Solicitação(Apelido),','')
strPwd = Substituir(Solicitação(Pwd),','')
Selecione Caso strOper
Adição de caso: 'Adicionar registro
strSQL = Inserir no Admin (Título, Apelido, Pwd, LastLoginTime) Valores ('&strTitle&', '&strNickName&', '&strPwd&', Now())
Edição do caso: 'Editar registro
strSQL = Atualizar conjunto de administração />Case del: 'Excluir registro
strSQL = Excluir do administrador Onde id = &strID
Finalizar seleção
'resposta.Write strSQL
Dim strSQL,rs
ChamarOpenDB()
Definir rs = Conn.Execute(strSQL)
Chame CloseDB()
%>
Este é o código frontend index.html
Copie o código do código da seguinte forma:
<!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>
<cabeça>
<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>
<corpo>
<table id=DataGrid class=scroll></table>
<div id=pager class=scroll style=text-align:center;></div>
</body>
</html>
<tipo de script=texto/javascript>
jQuery(#DataGrid).jqGrid({
url:'lista.asp',
tipo de dados: json,
colNames:['ID','Conta do administrador','Apelido do administrador','Senha','Último horário de login'],
colModelo:[
{
nome:'Id',
índice:'Id',
largura: 50
},
{
nome:'Título',
índice:'Título',
editável: verdadeiro,
editar regras:{
obrigatório: verdadeiro
}
},
{
nome:'Apelido',
índice:'Apelido',
editável: verdadeiro,
editar regras:{
obrigatório: verdadeiro
}
},
{
nome:'Pwd',
índice:'Pwd',
editável: verdadeiro,
tipo de edição:'senha',
oculto: verdadeiro,
opções de edição:{
tamanho: 20
},
editar regras:{
editar oculto: verdadeiro
}
},
{
nome:'ÚltimoLoginTime',
índice:'ÚltimoLoginTime',
alinhar:'certo',
editar regras:{
obrigatório: verdadeiro
}
} ], legenda:Lista de administradores,
imgpath:'/imagens',
seleção múltipla: verdadeiro,
linhaNum:20,
lista de linhas:[10,20,30],
pager: jQuery('#pager'),
nome de classificação: 'Id',
registros de visualização: verdadeiro,
ordem de classificação:desc,
altura: 400,
largura: 600,
editurl:edit.asp
});
$('#DataGrid').navGrid('#pager',{
atualizar: verdadeiro,
editar: verdadeiro,
adicione: verdadeiro,
del: verdadeiro,
pesquisa: verdadeiro,
texto de pesquisa: pesquisa,
edittext: alterar, addtext: adicionar, deltext: excluir
});
</script>
jqGrid, coisa boa ~~