Gracias


| ||||
Hola... que tipo de filtro es el que buscas..??? por cierto.. recuerda que el filtro de un data grid solo funciona cuando tiene la opcion de AutoGenerateColumns = True ![]() Saludos ![]()
__________________ Nadie roba nada ya que en la vida todo se paga . . . Exentrit - Soluciones SharePoint & Net |
| ||||
Primero que nada Gracias por responder.. Bueno, tengo una pagina, en asp.net con conexion a una bd access 2003 o 2000, la pagina tiene un form, donde hay un textbox y un boton, un datagrid. Bueno cuendo se entra a la pagina, se carga el datagrid, pero cuando el usuario ingresa un texto, en el textbox ej.: L%, y le da click al boton, este boton ejecuta una consulta o query a la bd y extrae datos, la primera pagina ya filtrada la muestra bien el el datagrid, pero cuando son mas de una pagina , de la pagina 2 en adelante, muestra los datos no filtrados...es decir, como cuando se ejecuto el Page load. y ya no doy mas, lo he intentado...pero no me resulta. ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
__________________ yerba mala nunca....te la fumes... |
| ||||
ok.. ya mas o menos te entendí .. mira.. lo que tienes que hacer primero es cargar tu data grid en tu page_load... con esta condición para cargarla solo la primera vez. Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not Page.IsPostBack Then LlenaGrid() 'Procedimiento para llenar mi grid cada vez que haya algun cambio ![]() End If End Sub Sub LlenaGrid() Dim DS As New DataSet() Dim origen As DataView Dim opc As Integer Dim sqlCmd As String sqlCmd = "select * from tu tabla" ![]() Dim sqlCon As New SqlClient.SqlConnection(ConfigurationSettings.AppS ettings("connectionstring")) Dim dAdap As New SqlClient.SqlDataAdapter(sqlCmd, sqlCon) dAdap.Fill(DS, "Conexion") origen = New DataView(DS.Tables("Conexion")) DataGrid1.DataSource = origen Try DataGrid1.DataBind() Catch DataGrid1.CurrentPageIndex = 0 DataGrid1.DataBind() End Try End Sub Ahora configuremos el paginado..(obviamente en tiempo de diseño le das la opcion de pagiar y posteriormente le inluyes su code como lo siguiente:) <asp:datagrid....etc...OnPageIndexChanged="CambioPage" ... .. y en codigo: Sub CambioPage(ByVal obj As Object, ByVal e As DataGridPageChangedEventArgs) LlenaGrid() DataGrid1.CurrentPageIndex = e.NewPageIndex DataGrid1.DataBind() End Sub Despues por ejemplo.. en un boton que va a leer el criterio o la cadena a buscar que está en un textbox podrías hacer lo siguiente: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim strSelect As String Dim DS As New DataSet() sqlCmd = "select * from tu_tabla where campo like '" & textbox1.text & "'" Dim sqlCon As New SqlClient.SqlConnection(ConfigurationSettings.AppS ettings("connectionstring")) Dim dAdap As New SqlClient.SqlDataAdapter(sqlCmd, sqlCon) dAdap.Fill(DS, "Conexion") DataGrid1.DataSource = DS DataGrid1.CurrentPageIndex = 0 DataBind() End Sub Bueno.. pues creo que ésto sería todo.. si te fijas lo que mas interesa es el postback... solo carga el grid la primera vez...y se converva el estado hasta que cambies el criterio (textbox) y podrás navegar por tu grid..respetando los resultados. ![]() Saludos y cualquier cosa por aqui andamos. ![]()
__________________ Nadie roba nada ya que en la vida todo se paga . . . Exentrit - Soluciones SharePoint & Net |
| ||||
Ok... vamos a hacer una cosa... te mando un ejemplo en cuanto me desocupe de la chamba... de todas formas si necesitas algo te paso el mail de mi trabajo. [email protected] Saludos ![]() |
| ||||
MMm.. que mala suerte... por el momento tengo algunos problemas con mi correo... pero te escribo el código tal cual, sirve que los demas lo ven. (Lo hice con V.Studio) Por cierto.. omití las directivas page language y el codebehind... el inherits y todo lo demás que va hasta arriba. eso depende de tu archivo. pero todo lo que sigue haz copy and paste. ![]() código datagrid.aspx (HTML) Cita: <HTML> <HEAD> <title>DataList</title> </HEAD> <body> <form id="Form1" method="post" runat="server"> <P> <asp:DataGrid id="DataGrid1" runat="server" Width="474px" AutoGenerateColumns="False" AllowPaging="True" OnPageIndexChanged="Cambio" AllowSorting="False" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="3" GridLines="Horizontal" PageSize="3"> <SelectedItemStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#738A9C"></SelectedItemStyle> <AlternatingItemStyle BackColor="#F7F7F7"></AlternatingItemStyle> <ItemStyle ForeColor="#4A3C8C" BackColor="#E7E7FF"></ItemStyle> <HeaderStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#4A3C8C"></HeaderStyle> <FooterStyle ForeColor="#4A3C8C" BackColor="#B5C7DE"></FooterStyle> <Columns> <asp:BoundColumn DataField="CompanyName" HeaderText="Company"></asp:BoundColumn> <asp:BoundColumn DataField="Address" HeaderText="Address"></asp:BoundColumn> <asp:BoundColumn DataField="City" HeaderText="City"></asp:BoundColumn> </Columns> <PagerStyle Font-Size="X-Small" Font-Bold="True" BorderStyle="None" HorizontalAlign="Left" ForeColor="#4A3C8C" BackColor="#E7E7FF" Mode="NumericPages"></PagerStyle> </asp:DataGrid></P> <P> <asp:Button id="Button1" runat="server" Text="Button"></asp:Button> <asp:TextBox id="TextBox1" runat="server"></asp:TextBox></P> </form> </body> </HTML> y en la página datagrid1.aspx.vb Cita: Imports System.Data.SqlClient Imports System.Configuration Imports System.Web.UI.WebControls Public Class myDataGrid Inherits System.Web.UI.Page Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid Protected WithEvents Button1 As System.Web.UI.WebControls.Button Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox Dim DS As DataSet = New DataSet() Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click DataGrid1.DataSource = RetrieveDS() DataGrid1.CurrentPageIndex = 0 DataGrid1.DataBind() End Sub Function RetrieveDS() As DataSet Dim str As String str = "select * from Customers where CompanyName like '" & TextBox1.Text & "%'" Dim sqlCon As New SqlConnection(ConfigurationSettings.AppSettings("c onnectionstring")) Dim dAdap As New SqlDataAdapter(str, sqlCon) dAdap.Fill(DS) Return DS End Function Sub cambio(ByVal o As Object, ByVal e As DataGridPageChangedEventArgs) Try 'Por si la página no existe o está fuera del rango DataGrid1.CurrentPageIndex = e.NewPageIndex DataGrid1.DataSource = RetrieveDS() DataGrid1.DataBind() Catch DataGrid1.CurrentPageIndex = 0 DataGrid1.DataSource = RetrieveDS() DataGrid1.DataBind() End Try End Sub End Class Esa sería mas o menos la idea... no entre en detalles porque te digo que ando con un poco de trabajo, ![]() ![]() Saludos ![]() |