Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

~= Fidel =~

AutoComplete

Recommended Posts

Possuo o seguinte codigo

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0054)http://conteudo.imasters.com.br/3629/autocompletar.htm -->
<HTML><HEAD><TITLE>AUTO COMPLETAR</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<STYLE>INPUT {
BORDER-RIGHT: #666666 1px solid; BORDER-TOP: #666666 1px solid; FONT-SIZE: 11px; BORDER-LEFT: #666666 1px solid; COLOR: #000000; BORDER-BOTTOM: #666666 1px solid; FONT-STYLE: normal; FONT-FAMILY: Verdana; BACKGROUND-COLOR: #ffffff
}
</STYLE>

<META content="MSHTML 6.00.2900.2912" name=GENERATOR></HEAD>
<BODY text=black vLink=purple aLink=red link=blue bgColor=white>
<TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top align=middle>
<H3 align=center> </H3>
<H3 align=center> </H3>
<H3 align=center></H3>
<H4 align=center>AUTO COMPLETAR</H4>
<FORM name="" action="detalhe.asp" method=post>
<TABLE class=BordaTable cellSpacing=0 cellPadding=8 width=443 align=center
border=1>
<TBODY>


<TR>
<TD align=middle width=427><p>Digite a Origem que procura: 
 <INPUT name=Tcodigos id=textbox1 onkeyup=checkList(this,arvore) size="100">
</p>
 <p>Digite o Destino que procura:
   <INPUT name=Tcodigos1 id=textbox2 onkeyup=checkList(this,arvore) size="100">
 </p>
 <p align="right">
   <input type="submit" name="button" id="button" value="Enviar">
</p></TD></TR></TBODY></TABLE>

<p>
 <%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Inetpub\wwwroot\MC\AutoTeste\bd1.mdb;"
Set RS = Server.CreateObject("ADODB.Recordset")
%>
 <%
SQLStmt = "SELECT * FROM TB_Latitudes"
RS.Open SQLstmt,Conn
%>
 <% While Not RS.EOF %>
 <% semAcento = semAcento & "'" & rs ("semAcento") & "'" & ", "%>

 <%
RS.MoveNext
Wend
RS.close
%>

    <script>

[b]var arvore = new Array(<%=semAcento%>"");[/b][i][/i][u][/u][i][/i]
document.write('<style type="text/css">'+
'#listHolder{position:absolute;border:0;}'+
'.list{font-family:verdana;font-size:10;color:#000000;background:;}'+
'<\/style>')

function checkList(obj,nStr) {

var k = event.keyCode;
var T = findPosY(obj); //top
var L = findPosX(obj); //left
var list = document.getElementById('listHolder');

if(!list) {
var list = document.createElement('DIV');
list.id = 'listHolder';
document.body.appendChild(list);
}

list.style.top=(T+obj.offsetHeight);
list.style.left=L;
list.style.display='none';

var txt=obj.value;

if (txt) {
var str='<select class="list"'+
'onclick="setOption(\''+obj.id+'\',this.options[this.selectedIndex].value)"'+
'onkeyup="if(event.keyCode==13){setOption(\''+obj.id+'\','+
'this.options[this.selectedIndex].value)};if(event.keyCode==27){'+
'document.getElementById(\'listHolder\').style.display=\'none\';'+
'document.getElementById(\''+obj.id+'\').focus()};" id="selector" size="6">'
var match=false
for(a=0;a<nStr.length;a++){

if(txt.toLowerCase()==nStr[a].toLowerCase().substring(0,txt.length)){
match=true
str+=('<option value="'+nStr[a].replace(/\'/gi,'’')+'">'+nStr[a]+'</option>')
}
}

str+='</select>'
if(match){
list.innerHTML=str
list.style.display='block'
var sel=document.getElementById('selector')
if(k=='40') {
sel.focus()
}

if(k=='13'){
document.getElementById('listHolder').style.display='none'
}
}
}
}

function setOption(obj,val){

var obj=document.getElementById(obj)

obj.value=val;
obj.focus()
document.getElementById('listHolder').style.display='none'
}

function findPosX(obj){
var curleft=0;
if(obj.offsetParent) {

while(obj.offsetParent){
curleft+=obj.offsetLeft
obj=obj.offsetParent;
}
} else if(obj.x)
curleft+=obj.x;
return curleft;
}

function findPosY(obj){
var curtop=0;
if(obj.offsetParent){
while(obj.offsetParent){
curtop+=obj.offsetTop
obj=obj.offsetParent;
}
} else if(obj.y)
curtop+=obj.y;
return curtop;
}
    </SCRIPT>
</p>
</FORM>
</TR>
</TBODY>
</TABLE>
</BODY>
</HTML>

Quando a tabela tem 100 registros ele funciona normal, mais com mais que isso ele da erro na linha em destaque.

 

Obs: tenho 5000 registros.

 

Ajudem por favor!

 

agradeços desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu code esta todo em html javascript não tem neca de asp portanto sua dúvida refere-se a javascript e não ao asp, estou correto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

só lembrando existe exemplo em ASP e .Net também usando JQuery

Compartilhar este post


Link para o post
Compartilhar em outros sites

respondendo aleatoriamente pq nao achei o destaque: procure usar AJAX , assim você ao invés de pegar 5000 registros, com bons filtros se possível, pegará apenas uns 20.

 

 

 

Olá amigo, obrigado por sua tentativa de me ajudar, mas acho que não fui claro, tentarei explicar melhor..

 

Com um banco de dados com 100 registros, ele funciona belezinha, já com um banco onde possui por exemplo 5000 (nome das cidades brasileiras), ele não funciona. Acho que é alguma coisa relacionado a quantidade de dados do banco.

 

Valeuu

Compartilhar este post


Link para o post
Compartilhar em outros sites

respondendo aleatoriamente pq nao achei o destaque: procure usar AJAX , assim você ao invés de pegar 5000 registros, com bons filtros se possível, pegará apenas uns 20.

 

 

 

Olá amigo, obrigado por sua tentativa de me ajudar, mas acho que não fui claro, tentarei explicar melhor..

 

Com um banco de dados com 100 registros, ele funciona belezinha, já com um banco onde possui por exemplo 5000 (nome das cidades brasileiras), ele não funciona. Acho que é alguma coisa relacionado a quantidade de dados do banco.

 

Valeuu

 

Exatamente por dar erro com 5000 registros que eu disse para voce usar o ajax. assim você nunca estará trabalhando com os 5000 registros ao mesmo tempo, até porque nao faz sentido na internet exibir os 5000 registros.

 

a nao ser que o seu erro nao seja algo tipo timeout. Qual a mensagem de erro? e o que é executado no ato da mensagem de erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.