Depois de ler alguns posts sobre isso, aprendi muito e agora quero compartilhar com todos vocês.
O Flash agora é apenas uma função de exibição. Durante o processo, li o material de outras pessoas e senti que a paginação parece ter uma maneira muito simples de implementá-la.
Basicamente é transmitido usando xml.
Tanto os componentes da lista quanto o datagrid podem ser usados para exibição. Eu uso texto dinâmico aqui porque acho muito problemático usar componentes.
Então usei um método estúpido, não tinha outro jeito, não consegui achar um melhor~~~
A lista[..] no código abaixo é o nome do texto dinâmico e 15 itens são exibidos por vez.
//O programa de exibição é o seguinte:
//Nome do quadro "lista"
parar();
var listalog = new XML();
var logroot;
var página:Número; //Página atual
var Tpage:Number; //Salva o total da página
var Tnum:Number; //Número total de registros
var logname:String; //Nome da categoria do log
vartemp;
var i:Number;
//Aqui eu uso um array para armazenar o número de ID correspondente. Se você usa componentes, não precisa ser tão problemático.
var ids = new Array(15);
//Dois botões para virar páginas
bn_u.enabled = falso;
bn_d.enabled = falso;
if (página == nulo ou página<1) {
página = 1;
}
//-----------------------------
//Limpa a função;
função myclear() {
para (i=1; i<16; i++) {
id[i-1] = 0;
lista["lbn"+i]._visível = falso;
lista["ltitle"+i].text = "";
lista["autor"+i] = "";
lista["ltime"+i] = "";
}
}
//----------------------------------------------------
//----------------------------------------------------
myclear();
pageInfo.text = "Lendo dados...";
logList.ignoreWhite = verdadeiro;
logList.load("Tree_list.asp?log_cat="+cat_id+"&page="+página);
//------------------------------------------------
//obtém função de dados
função logFunc(e) {
se (e) {
logroot = logList.firstChild;
logname = logroot.atributos.logname;
Tpage = logroot.atributos.Tpage;
Tnum = logroot.atributos.Tnum;
temp = logroot.firstChild;
list.ltitle1.text=Ftitle(temp.firstChild.nodeValue, 22);
lista.lautor1 = temp.atributos.autor;
lista.ltime1 = temp.atributos.Addtime;
ids[0] = temp.atributos.id;
eu = 1;
list.lbn1._visible = verdadeiro;
//Loop para ler nós
while (temp.nextSibling! = null) {
temp = temp.próximoIrmão;
eu++;
//Se for exibido de outra forma, basta alterá-lo.
ids[i-1] = temp.atributos.id;
lista["lbn"+i]._visível = verdadeiro;
lista["ltitle"+i].text = Ftitle(temp.firstChild.nodeValue, 22);
lista["lautor"+i] = temp.atributos.autor;
lista["ltime"+i] = temp.atributos.Addtime;
}
pageInfo.text = logname+"Total de logs"+Tnum+"Total de artigos"+Tpage+"A página atual é "+page+"page"+"15/page";
bn_u.enabled = verdadeiro;
bn_d.enabled = verdadeiro;
} outro {
pageInfo.text = "Atualmente não há registros.";
list.ltitle1.text = "Erro ao ler os dados, entre em contato com o administrador!";
}
}
//Uma função de título de formato personalizado, temendo que o título seja muito longo
função Ftítulo(s, n) {
if (comprimento(s)>n) {
s = s.substring(0, n-1)+"...";
}
retornar;
}
logList.onLoad = logFunc;
//-------------------------------------
//Ação do botão
Bn_up = novo Objeto();
//Evento de botão, determina se o tamanho da página excede o valor
Bn_up.click = função(evt) {
if (página>1) {
_root.página--;
gotoAndPlay("ciclo");
} outro {
parar();
}
};
Bn_d = novo Objeto();
Bn_d.click = função(evt) {
if (página<Tpágina) {
_root.página++;
gotoAndPlay("ciclo");
} outro {
parar();
}
};
bn_u.addEventListener("clique", Bn_up);
bn_d.addEventListener("click", Bn_d);
Existe apenas uma palavra para "ciclo":
gotoAndPlay("lista");
//Forma um loop simples
Tree_list.asp:
//log é minha tabela de log, log_cat é o asp abaixo da tabela de classificação É muito claro
<?xml version="1.0" encoding="gb2312"?>.
<%
Response.ContentType = "texto/xml"
Response.CacheControl = "sem cache"
Response.AddHeader "Pragma", "sem cache"
Resposta.Expira = 0
dim log_cat,página,pageSize,Tnum,Tpage,log_name
página=TreeRequest("página",1)
log_cat=TreeRequest("log_cat",1)
tamanho da página = 15
callTree_rs
se log_cat=0 ou log_cat="" então
sql="selecione * na ordem do log por escrita_time DESC,log_ID DESC"
outro
sql="selecione * from log,log_cat onde log.cat_id=log_cat.ID e cat_id="&log_cat&" ordene por escrita_time DESC,log_ID DESC"
Terminar se
rs.open sql,conn,1,1
rs.PageSize=pageSize
Tnum=rs.RecordCount
Tpage=Int(Tnum/pageSize*-1)*-1
se página="" então página=1
se Tnum<>0 então rs.AbsolutePage=página
se log_cat=0 ou log_cat="" então
log_name="[todas as categorias]"
outro
log_name="["&rs("nome_gato")&"]"
Terminar se
'A seguinte saída xml
'------------------------------------------------
resposta.write("<Tree logname='"&log_name&"' Tnum='"&Tnum&"' Tpage='"&Tpage&"'>")
se rs.eof então
rs.fechar
outro
faça enquanto não rs.eof e pageSize> 0
response.write("<Árvores autor='"&rs("log_author")&"' Addtime='"&rs("tempo_escrito")&"' id='"&rs("log_ID")&"'>")
resposta.write("<![CDATA["&rs("log_tittle")&"]]></Árvores>")
pageSize=pageSize-1
rs.movnext
laço
rs.fechar
Terminar se
//Fecha rsrs
callTree_rsclose
callTree_conclose
resposta.write("</Tree>")
%>
O código parece muito confuso. Espero que possa ser útil para amigos que estão fazendo isso. Se houver algum erro no item acima, por favor me diga