Foros del Web » Programando para Internet » ASPX (.net) »

onKeyUp codebehind sin postback

Estas en el tema de onKeyUp codebehind sin postback en el foro de ASPX (.net) en Foros del Web. Hola a todos, Tengo un TextBox, (TextBox1), que hago servir para filtrar un grid mediante 'SqlDataSource1.FilterExpression' i ajax. onKeyUp en codebehind sin postback He probado ...
  #1 (permalink)  
Antiguo 31/12/2008, 04:14
 
Fecha de Ingreso: diciembre-2008
Mensajes: 2
Antigüedad: 15 años, 4 meses
Puntos: 0
onKeyUp codebehind sin postback

Hola a todos,

Tengo un TextBox, (TextBox1), que hago servir para filtrar un grid mediante 'SqlDataSource1.FilterExpression' i ajax.

onKeyUp en codebehind sin postback

He probado dos maneras que me funcionan:

Metodo 1:

en fichero aspx:
<asp:TextBox ID="TextBox1" runat="server" Height="13px" Width="102px" AutoPostBack="False"></asp:TextBox>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>
aquí tengo un grid que ensenya los datos
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TextBox1" EventName="TextChanged" />
</Triggers>
</asp:UpdatePanel>


en fichero aspx.vb:
Protected Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If Me.TextBox1.Text = "" Then
Me.SqlDataSource1.FilterExpression = "CodigoCliente like '%'"
Else
Me.SqlDataSource1.FilterExpression = "RazonSocial like '%" & Me.TextBox1.Text & "%'"
End If
End Sub


Metodo 2:

en fichero aspx:
<asp:TextBox ID="TextBox1" runat="server" Height="13px" Width="102px" onKeyUp="return llamada()" AutoPostBack="False"></asp:TextBox>

<script language="javascript" type="text/javascript">
function llamada() {
__doPostBack("Obj",'') ;
}
</script>

en fichero aspx.vb:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Request.Params("__EVENTTARGET") = "Obj" Then filtro()
End Sub

Protected Sub filtro()
If Me.TextBox1.Text = "" Then
Me.SqlDataSource1.FilterExpression = "CodigoCliente like '%'"
Else
Me.SqlDataSource1.FilterExpression = "RazonSocial like '%" & Me.TextBox1.Text & "%'"
End If
End Sub


Lo que yo quiero es que es filtro se haga con dos requisitos:
a. sin que se realize el refresco de pàgina.
b. en el evento 'onKeyUp'


El Metodo 1 cumple el requisito a (el b no pq se realiza en el evento 'TextChanged')
El Metodo 2 cumple el requisito b (el __doPostBack provoca refresco de pàgina)

¿Alguien sabe como cumplir los dos a la vez ?
  #2 (permalink)  
Antiguo 31/12/2008, 04:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: onKeyUp codebehind sin postback

Hola XavierM, bienvenido a los foros :

La verdad es que el código que has incrustado me suena a chino, pero la parte que pones de asp no tenemos que entenderla, siempre que devuelva el contenido que buscamos usando Ajax... y esa parte Ajax, debe tener unas cosas básicas javascript que no parece que cumple tu "llamada()"

Las llamadas Ajax deben crear el objeto Ajax (XMLHttpRequest/ActiveXObject), y después de la inicialización programar la respuesta asincrónica con el evento readyStateChange...

Si no sabes esas cosas, consulta nuestras FAQs para iniciarte, y te iremos ayudando.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 31/12/2008, 10:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: onKeyUp codebehind sin postback

El problema, es que esta usando las herramientas de .NET que te auto generan el código.

Tema trasladado a ASP.NET.
  #4 (permalink)  
Antiguo 01/01/2009, 06:51
 
Fecha de Ingreso: diciembre-2008
Mensajes: 2
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: onKeyUp codebehind sin postback

Cierto, puse el mensaje en Ajax pq el codigo contiene Ajax, preo en realidad es Ajax de .NET.
Espero elejir mejor el foro correspondiente.

¿ Alguna sujerencia en este foro de .NET ?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:29.