![]() |
Datagrid y edición Hola a todos, Me interesa tener un datagrid con varias columnas pero que clicando en una de ellas me aparezca el formulario para editar todos los campos de este registro. Mi duda es que no se cual es la mejor manera de hacerlo. He pensado que la columna del identificador sea una column del tipo HyperLinkColumn y en la ruta enlazar el id. Pero en este caso no se cómo enlazarle éste id. Por ejemplo: <asp:HyperLinkColumn DataNavigateUrlField="articulo.aspx?accion=edicion &id="+??? DataTextField="ATIPUS"></asp:HyperLinkColumn> Como concateno en ??? el identificador del articulo? No se si ha otra manera mejor de hacerlo, el único requisito es que el listado de ítems desaparezca para editar el seleccionado. No puede haber un desplegable o algo asi, la pantalla de edición ha de ser independiente. Sé que con un datagrid se pueden editar registros pero en este caso no se si me vale. Agradeceria alguna indicación. Muchas Gracias. |
Hola... ya intentaste con ésto: Cita:
Espero te funcione.. :arriba: Saludos :cool: |
¿Y si necesitara pasar mas de un dato con el Hyperlink como deberia hacerlo? |
Finalmente consegui pasar varios parametros con columnas plantilla(Template column) y concatenando los databinder.Eval Algo asi: <asp:TemplateColumn HeaderText="Nombre"> <ItemTemplate> <asp:HyperLink id=HyperLink1 runat="server" NavigateUrl='<%# "DetalleEmpleado.aspx?id=" + DataBinder.Eval(Container.DataItem, "EmployeeId") + "&name=" + DataBinder.Eval(Container.DataItem, "LastName") %>' Text='<%# DataBinder.Eval(Container, "DataItem.FirstName") %>'> </asp:HyperLink> </ItemTemplate> </asp:TemplateColumn> <ItemTemplate>, hace que todo lo que está en su interior se repita para cada fila del datagrid. <asp:HyperLink>, etiqueta estándar de ASP.NET para crear hipervínculos, claramente id que le pongamos es arbitrario. Text, stexto que el usuario va a ver en el hipervínculo. NavigateUrl, determina el URL al que nos llevará el hipervínculo. Recordemos que deseamos construir un URL que tenga este aspecto: DetalleEmpleado.aspx?id=1&name=Davoglio. Para lograr esto: Dentro de los apóstrofes de NavigateUrl ponemos una expresión rodeada por <%# miExpresion %>, esta expresión será evaluada para cada fila del datagrid. Container.DataItem representa la fila de datos actual del datagrid. DataBinder.Eval permite acceder al contenido de la fila actual. Por ejemplo DataBinder.Eval(Container.DataItem, "EmployeeId") se evaluará sucesivamente a 1, 2, 3, etc. |
Por que tantos parametros? Perdon por observacion pero para que quieres pasar varios campos?, entiendo que habra casos en que se necesite y realmente si me gusto la solucion, sin embargo si vas a mostrar una una pantalla para la edicion del registro no deberias mandarle solo el id del registro que quieres modificar? Bueno yo ando apenas en eso de altas bajas y cambios en la manera en como tu lo haces, pero no entiendo para que los demas parametros. Por otro lado si alguien sabe de algun ejemplo abc me seria de gran ayuda. |
Mira esta web para el paso de parametros con el datagrid. http://www.microsoft.com/spanish/msd...ices/art18.asp |
| La zona horaria es GMT -6. Ahora son las 10:45. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.