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

Filtrar mientras se tipea

Estas en el tema de Filtrar mientras se tipea en el foro de ASPX (.net) en Foros del Web. Hola foreros buenas... tengo un sistema aspx.net (con vb) con sql 2005 en una pagina tengo un gridview que al momento de cargarla se llena ...
  #1 (permalink)  
Antiguo 24/05/2011, 18:36
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 8 meses
Puntos: 2
Filtrar mientras se tipea

Hola foreros buenas...
tengo un sistema aspx.net (con vb) con sql 2005
en una pagina tengo un gridview que al momento de cargarla se llena el gridview en orden alfabetico con los datos de los clientes
(Nombre, Direccion, Telefono, correo, fecha de alta)

quiero poner una caja de texto para filtrar y al momento de ir tecleando el nombre del cliente se actualice el gridview

nose si me di a entender, pero no se como atacarlo...

se que puedo utilizar la propiedad textchanged del text box
  #2 (permalink)  
Antiguo 25/05/2011, 08:02
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: Filtrar mientras se tipea

Cita:
quiero poner una caja de texto para filtrar y al momento de ir tecleando el nombre del cliente se actualice el gridview
Se oye muy aplicación Desktop jeje, pero contestando a tu pregunta se puede hacer per depende de algunos factores como:

1.- La información cada cuando cambia? cada minuto, cada día, cada semana?
2.- El servidor de app y BD tiene suficiente galleta en memoria y procesador
3.- Es para internet o intranet?
4.- Cuantos registros aprox existen en la tabla que deseas filtrar?
5.- Tienes expertise en Ajax y/o Jquery?


Aunque igual y lo preguntas porque lo quieres para hacer pruebas y no se va a usar en un mundo real, si es así avísame y te digo que puedes hacer

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 25/05/2011, 09:50
Avatar de AWesker  
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: Filtrar mientras se tipea

Interesante... pues, ya he tenido la oportunidad de hacer filtros (sólo que utilizando autocomplete) y lo que dice RootK es muy cierto, además, tenés que considerar la forma en la que hacés la consulta a la BD, crear índices en la BD para optimizar la búsqueda y la velocidad con la que querés presentar la data.

Pero a ciegas (y por experiencia) puedo aconsejarte:
-Usá UpdatePanel uno para el GridView y otro para el TextBox (eso si, al usar UpdatePanel la velocidad de carga disminuye un poco)
-Para que el filtro se haga letra por letra, utiliza el evento TextChanged del textbox, de esta forma el UpdatePanel del Gridview tendrá de disparador el textchanged.

Aquí te dejo un link con una forma en la que puedes hacerlo (incluye un demo):
http://www.charith.gunasekara.web-sp...key-press.html
  #4 (permalink)  
Antiguo 26/05/2011, 11:21
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Filtrar mientras se tipea

Gracias por su apoyo

ya tengo la respuesta.

hay que hacerlo con jquery
el unico problema aqui es que por paginación.. en fin
hare una busqueda a la base de datos con un textbox y un command
  #5 (permalink)  
Antiguo 13/01/2012, 12:49
 
Fecha de Ingreso: octubre-2008
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Filtrar mientras se tipea

Como lo hicistes tengo el mismo problema pero hasta hora no puedo terminarlo estoy tratando de acerlo con ajax pero nada

Estoy usando vb.net aspx
  #6 (permalink)  
Antiguo 13/01/2012, 19:46
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Filtrar mientras se tipea

te mando los datos de mi hoja

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

<table style="width:100%; height: 50px;">
<tr>
<td align="left" valign="top">
<h3
style="width: 541px; font-family: Tahoma; ">Manage Licensees Catalog</h3>
</td>
</tr>
<tr>
<td bgcolor="Silver">
<asp:ImageButton ID="IBNewRecord" runat="server" AlternateText="Add Company"
ImageUrl="~/App_Themes/ButtonBarNew.gif" ToolTip="Add new record" />
</td>
<td>
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="true" Height="20px" Width="192px"></asp:TextBox>
<asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="true" align="top" Height="24px" Width="170px">
<asp:ListItem>Company</asp:ListItem>
<asp:ListItem>Contact</asp:ListItem>
<asp:ListItem>Nation</asp:ListItem>
</asp:DropDownList>
</td>
<td>


<asp:ImageButton ID="ImageButton1" runat="server" Height="20px"
ImageUrl="~/App_Themes/icons/search.png" Width="24px" />
</td>
</tr>
</table>

<table style="width:113%;">
<tr>
<td>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CellPadding="3" DataKeyNames="LicenID" DataSourceID="SqlDataSource1"
GridLines="None" EmptyDataText="No Records" BackColor="White"
BorderColor="White" BorderStyle="Ridge" BorderWidth="2px" CellSpacing="1"
AllowPaging="True" Font-Size="Small" Width="1000px" PageSize="8">
<RowStyle BackColor="#DEDFDE" ForeColor="Black" />
<Columns>
<asp:CommandField ButtonType="Image" EditImageUrl="../App_Themes/edit.gif"
HeaderText="Edit" ShowEditButton="True" />
<asp:BoundField DataField="LicenID" HeaderText="ID"
SortExpression="LicenID" ReadOnly="True" >
</asp:BoundField>
<asp:BoundField DataField="Company" HeaderText="Company"
SortExpression="Company" />
<asp:BoundField DataField="Direccion" HeaderText="Address"
SortExpression="Direccion">
</asp:BoundField>
<asp:BoundField DataField="Ciudad" HeaderText="City"
SortExpression="Ciudad" >
</asp:BoundField>
<asp:BoundField DataField="Region" HeaderText="Region"
SortExpression="Region" >
</asp:BoundField>
<asp:BoundField DataField="CodigoPostal" HeaderText="Z P"
SortExpression="CodigoPostal" />
<asp:BoundField DataField="Nation" HeaderText="Nation"
SortExpression="Nation" >
</asp:BoundField>
<asp:BoundField DataField="Telefono1" HeaderText="Telephone"
SortExpression="Telefono1" >
</asp:BoundField>
<asp:BoundField DataField="Contact" HeaderText="Contact"
SortExpression="Contact" >
</asp:BoundField>
<asp:BoundField DataField="CorreoCont" HeaderText="e mail"
SortExpression="CorreoCont" />
</Columns>
<FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
<PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Left" />
<SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" />
</asp:GridView>
<br />
</td>
</tr>
</table>

<table style="width:100%;">
<tr>
<td>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [LicenID], [Company], [Direccion], [Ciudad], [Region], [CodigoPostal], [Nation], [Telefono1], [Fax], [Contact], [TelefonoCont], [CorreoCont] FROM [Licenciatarios]
WHERE (Company LIKE '%' +@Company+ '%')Or (Contact LIKE '%' +@Contact+ '%') Or (Nation LIKE '%' +@Nation+ '%')" FilterExpression="{0} LIKE '%{1}%'">

<FilterParameters>
<asp:ControlParameter ControlID="DropDownList2" Name="FieldToSearch" PropertyName="SelectedValue" />
<asp:ControlParameter ControlID="TextBox1" Name="SearchCriteria" PropertyName="Text" />
</FilterParameters>
<SelectParameters>
<asp:ControlParameter ControlID="TextBox1" Name="Company" PropertyName="Text" />
<asp:ControlParameter ControlID="TextBox1" Name="Contact" PropertyName="Text" />
<asp:ControlParameter ControlID="TextBox1" Name="Nation" PropertyName="Text" />
</SelectParameters>
</asp:SqlDataSource>
<br />
</td>
</tr>
</table>
<div>

</div>

</asp:Content>
  #7 (permalink)  
Antiguo 13/01/2012, 19:47
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Filtrar mientras se tipea

ya te puse la solucion

Etiquetas: filtrar, mientras, aspx
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 16:56.