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 ?
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 ?