Si tienes un GridView y quieres realizar una acción personalizada, basta con agregar una columna ButtonField
, y pasar el id
del registro que seleccionaron.
El GridView
:
- <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" AllowPaging="True" AllowSorting="True" CellPadding="0" PageSize="30" GridLines="None" Width="100%" DataKeyNames="id">
- <Columns>
- <asp:BoundField DataField="id" HeaderText="ID" InsertVisible="False" SortExpression="id" />
- <asp:BoundField DataField="status" HeaderText="Status" SortExpression="status" />
- <asp:ButtonField CommandName="ConmutarStatus" HeaderText="Conmutar status" Text="Conmutar" ButtonType="Link" />
- </Columns>
- </asp:GridView>
Nota la propiedad DataKeyNames
. La establecí en id
porque ese es el nombre de mi columna llave en la tabla.
Cada vez que se hace clic en la columna ButtonField
, se dispara el evento RowCommand
y es ahí donde debemos realizar la acción.
- Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
- If e.CommandName = "ConmutarStatus" Then
- Dim indice As Integer = Convert.ToInt32(e.CommandArgument)
- Dim id As Integer = GridView1.DataKeys(indice).Value
- 'Ahora en id tenemos el id de nuestra tabla.
- 'Podemos realizar cualquier acción con este valor.
- End If
- End Sub
Muchas gracias!!!!!
Gracias por darte tiempo de poner esta solución aqui, fue muy útil.
Saludos,
y disculpa mi torpesa, entiendo tu codigo donde atrapa el ide de la tabal, pero no se como trabajar con este ide
por ejemplo si en el momento que de click el usuario en el buttonfield megustaria enviar un mensaje, ¿como podria hacer esto)
Tal vez te refieras a esto?
http://www.viale.com.mx/2007/08/04/como-crear-un-mensaje-de-confirmacion-para-eliminar-un-registro-en-un-gridview/
en c#
disculpa podrias publicarlo en C#
Gracias…
xD hera algo muy simple ya lo resolvi gracias…
Gracias por ponerlo en C#, yes.
Saludos.
MIL GRACIAS!!!
Por gente como vos soy mejor programador día a día…
Gracias…
Jajaja, de nada Joaquín, qué bueno que te sirvió la ayuda!
gracias men!