PDA

Ver la Versión Completa : Edición, Actualización y Eliminación de filas en un DataGrid en asp.net


mamen
13-07-2004, 12:34:44
Me gustaria saber si existe la posibilidad de tener en una página asp.net en lugar del datagrid con las columnas edición y eliminación para cada fila, un botón edición que según la fila seleccionada edite en otro formulario todos los campos de dicha fila.

Lo he intentado pero hacer pero el problema está en que no sé como pasarle el parámetro e: System.Web.UI.WebControls.DataGridCommandEventArgs que se pone directamente en el Evento EditCommand del DataGrid.

Espero respuestas. Muchas gracias por todo. Chao

__hector
13-07-2004, 21:34:45
Puedes programar el evento onclick del item de la fila, para que haga la accion que deseas. Por ejemplo:


<asp:datagrid id="grid" runat="server" Width="549px" SelectedItemStyle-ForeColor="#ffffff" AutoGenerateColumns="False" PageSize="30" AllowPaging="True">
<SelectedItemStyle Font-Size="8pt" Font-Underline="True" Font-Names="tahoma"
Font-Bold="True" HorizontalAlign="Center" ForeColor="Red" BackColor="Beige"></SelectedItemStyle>
<EditItemStyle HorizontalAlign="Center"></EditItemStyle>
<AlternatingItemStyle Font-Size="8pt" Font-Names="Tahoma" HorizontalAlign="Center" BackColor="#EDF6FF"></AlternatingItemStyle>
<ItemStyle Font-Size="8pt" Font-Names="tahoma" HorizontalAlign="Center" BackColor="White"></ItemStyle>
<HeaderStyle Font-Size="8pt" Font-Names="tahoma" Font-Bold="True" HorizontalAlign="Center" ForeColor="White" BackColor="SteelBlue"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="Acción">
<HeaderStyle Width="15%"></HeaderStyle>
<ItemStyle BackColor="#C6DCEE"></ItemStyle>
<ItemTemplate>
<asp:ImageButton id="_Imagebutton1" OnClick="Consultar" runat="server" AlternateText="Consultar datos" ImageUrl="images/Ver.gif"
CommandName='<%#container.dataitem("SolicitudEmpleoID")%>'>
</asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Numero" HeaderText="No.">
<HeaderStyle Width="6%"></HeaderStyle>
</asp:BoundColumn>
...
...

</asp:datagrid>


Luego, solo tienes que programar un sub en el .pas con el nombre del procedimiento que especificaste en el onclick, que reciba los parametros del tipo de objeto que manda el evento:


Public Sub Consultar(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
.....
End Sub


Tienes un sender, que es de tipo Object, y que por ser en este caso un imagebutton tiene una propiedad, commandname, que la seteamos con el id del registro al momento de llenar el grid en el aspx.

Dudas?

mamen
14-07-2004, 11:27:44
En primer lugar no entiendo por qué hay que poner un ImageButton en el datagrid.

Y en segundo lugar yo necesito el parámetro

e:System.Web.UI.WebControls.DataGridCommandEventArgs

que es donde puedo obtener los valores de las columnas de la fila seleccionada en el datagrid.

Con tus parámetros cómo podria obtener los valores del datagrid?? No se los pasas al evento onclick??

__hector
14-07-2004, 21:22:51
Muestrame el codigo que estas usando, y yo vere si te puedo dar el codigo equivalente para obtener el resultado deseado.

mamen
15-07-2004, 09:51:27
Este es el código aspx del datagrid:


<asp:datagrid id=DataGrid3
style="Z-INDEX: 15; LEFT: 30px; POSITION: absolute; TOP: 206px"
runat="server" height="134px" width="940px"
font-size="X-Small" oneditcommand="cmEdit"
bordercolor="DodgerBlue" autogeneratecolumns="False"
allowpaging="True" pagesize="5"
pagestyle-horizontalalign="Center"
oncancelcommand="cmCancel" onupdatecommand="cmUpdate">
<headerstyle font-bold="True" horizontalalign="Center"
backcolor="LightSteelBlue">
</headerstyle>
<selecteditemstyle backcolor="Lavender">
</selecteditemstyle>
<itemstyle horizontalalign="Center">
</itemstyle>
<columns>
<asp:boundcolumn datafield="ape_nom" headertext="NOMBRE">
</asp:boundcolumn>
<asp:boundcolumn datafield="n_contrib" readonly="True"
headertext="CONTRIBUYENTE">
</asp:boundcolumn>
<asp:boundcolumn datafield="c_pais" headertext="PAIS">
</asp:boundcolumn>
<asp:boundcolumn datafield="c_prov" headertext="PROVINCIA">
</asp:boundcolumn>
<asp:boundcolumn datafield="c_mpio" headertext="MUNICIPIO">
</asp:boundcolumn>
<asp:boundcolumn datafield="c_via" headertext="COD VIA">
</asp:boundcolumn>
<asp:buttoncolumn text="Seleccionar" commandname="Select">
</asp:buttoncolumn>
<asp:editcommandcolumn buttontype="LinkButton"
updatetext="Actualizar" canceltext="Cancelar"
edittext="Edición">
</asp:editcommandcolumn>
<asp:buttoncolumn text="Eliminar" commandname="Delete">
</asp:buttoncolumn>
</columns>
</asp:datagrid>

El código de cmEdit es el siguiente:

procedure TWebPrincipal.cmEdit(source: System.Object; e: System.Web.UI.WebControls.DataGridCommandEventArgs);
begin
DataGrid3.EditItemIndex :=e.Item.ItemIndex;
DataGrid3.DataSource:=fo.ObtenerDatos(usuarioactual);
DataGrid3.DataBind;

end;


Cuando se pincha en Editar lo que hace es poner en cada columna cuadros de texto (esto permite que se puedan modificar) y cambia el enlace Editar por Actualizar y Cancelar.

mamen
18-08-2004, 11:48:31
Hola a todos!!! Me puedes ayudar ya te mostré el código.

Muchas gracias. Espero tu respuesta

patof
18-04-2007, 17:20:29
como rescato el valor de CommandName en el sub.

Public Sub Consultar(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)

????????????????????????

End Sub

Ubalo
17-05-2007, 00:00:19
Hola a todos!
se que este tema no tiene nada q ver pero talvez me puedan ayudar.

Estoy empezando en esto de Asp.NET, mi problema es este:
Tengo un TreeView el cual tengo que manipular mediante Javascript pero no he podido obtener el valor del nodo seleccionado.

he probado codigo como este

var oTree=document.getElementById("TreeView1");
var value=oTree.SelectedNode();

que estoy haciendo mal? ya que el error que me indica es que no soporta esta propiedad.

Gracias por su ayuda