Encontre la explicación en: http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview. selectedindexchanging.aspx
El evento que necesitas es SelectedIndexChanged. (En Colombia a una persona con el mismo nombre que uno le decimos tocayo.) Bye Tocayo _____ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Gabriel Tobal Sent: Thursday, May 24, 2007 2:07 PM To: [email protected] Subject: [puntonet] Problema con gridview filtrado Te paso un ejemplo simplificado, la pagina html tiene un gridview asociado al datasource y un formulario de filtro de datos, al presionar el boton de filtro hago el filtro sobre el datasource. El unico y gran problema que esto me esta generando es que al mostrarme en el gridview solamente los datos filtrados, al presionar el comando Select, me toma el rowID como si los datos no estuvieran filtrados. Alguna idea sobre esto?? HTML <asp:GridView ID="ProveedoresView" AllowPaging="True" PageSize="15" AutoGenerateColumns ="False" DataSourceID="ProveedoresDS" DataKeyNames="IDproveedoresOP" runat="server" > <Columns > <asp:BoundField DataField="IDProveedoresOP" HeaderText="IDOP" Visible="False" > <ItemStyle HorizontalAlign="Left" /> </asp:BoundField> <asp:BoundField DataField="Empresa" HeaderText="Empresa"> <ItemStyle HorizontalAlign="Left" /> </asp:BoundField> <asp:BoundField DataField="proveedor" HeaderText="Proveedor" SortExpression="proveedor"> <ItemStyle HorizontalAlign="Left" /> </asp:BoundField> <asp:TemplateField HeaderText="Fecha"> <ItemStyle HorizontalAlign="Center" /> <ItemTemplate> <asp:Label ID="lblFecha" runat="server" Text='<%# Bind("Fecha", "{0:dd/MM/yyyy}") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:CommandField HeaderText= "Modif" ButtonType="Image" DeleteImageUrl ="~/images/iconos/Delete.gif" ShowDeleteButton="True" SelectImageUrl="~/images/iconos/Edit.gif" ShowSelectButton="True" SelectText="Modificar Item" DeleteText="Eliminar registro" Visible=false /> </Columns> </asp:GridView> <asp:SqlDataSource ID="ProveedoresDS" runat="server" ConnectionString="<%$ ConnectionStrings:CS %>" SelectCommand="SELECT * FROM ProveedoresOrdenPago " > </asp:SqlDataSource> Vb.net Protected Sub btnFiltrar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFiltrar.Click ProveedoresDS.FilterExpression = " proveedor like '%" & txtFiltro.Text & "%'" Page.DataBind() End Sub Protected Sub ProveedoresView_SelectedIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSelectEventArgs) Handles ProveedoresView.SelectedIndexChanging Dim intIDItemSelected As String intIDItemSelected = ProveedoresView.Rows(e.NewSelectedIndex).Cells(0).Text.ToString Response.Redirect("modifproveedores.aspx?IDproveedor=" & intIDItemSelected) End Sub _____ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Gabriel Osorio Sent: Thursday, May 24, 2007 1:49 PM To: [email protected] Subject: [puntonet] Problema con gridview filtrado Me interesa. Estas enlazando el control con un dataView? Algo como: private void BindData(DataTable dt, string filter) { DataView dv = new DataView(dt,"filter = '" + filter + "'", "",DataViewRowState.CurrentRows); gridview.DataSource = dv; gridview.DataBind(); _____ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Gabriel Tobal Sent: Thursday, May 24, 2007 11:04 AM To: [email protected] Subject: [puntonet] Problema con gridview filtrado Hola a todos, Tengo un gridview enlazado a un datasource, el gridview tiene también la columna command para hacer update y delete. Al datasource le aplico un filtro para segmentar los registros obtenidos según ciertos casos, pero al hacer un update, el evento obtiene el rowID de la fila como si no hubiese realizado ningún filtro. Alguien tiene alguna idea de como obtener el rowID correcto. Adjunto el ej. del codigo de como obtengo el rowID intIDItemSelected = ProveedoresView.Rows(e.NewSelectedIndex).Cells(0). Text.ToString Muchas gracias Gabriel
