Pregunta

Tengo un GridView. Mi GridView tiene una columna que contiene una " Opciones " columna. Esta columna incluye las opciones tradicionales de CommandField (editar, eliminar, etc.). Tengo la configuración de código para trabajar cuando se usa un CommandField. Sin embargo, necesito hacer un formato personalizado, así que necesitaba convertir el CommandField a TemplateField.

Mi pregunta es, ¿cómo puedo activar los eventos OnRowCommand, OnRowEditing, OnRowDeleting y OnRowUpdating de los diversos elementos LinkButton en mi TemplateField?

¡Gracias!

¿Fue útil?

Solución

Todo lo que tiene que hacer es establecer la propiedad CommandName del LinkButton dentro de su columna de plantilla en 'Editar' para editar, 'Eliminar' para eliminar y 'Actualizar' para actualizar. Esto activará los eventos GridView RowEditing, RowDeleting y RowUpdating respectivamente. Para activar el evento RowCommand, debe establecer la propiedad OnRowCommand de su control GridView.

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"
    OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"
    OnRowUpdating="GridView1_RowUpdating">
<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <!--To fire the OnRowEditing event.-->
            <asp:LinkButton ID="lbEdit" runat="server" CommandName="Edit" 
                Text="Edit">
            </asp:LinkButton>
            <!--To fire the OnRowDeleting event.-->
            <asp:LinkButton ID="lbDelete" runat="server" CommandName="Delete" 
                Text="Delete">
            </asp:LinkButton>
            <!--To fire the OnRowUpdating event.-->
            <asp:LinkButton ID="lbUpdate" runat="server" CommandName="Update" 
                Text="Update">
            </asp:LinkButton>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>    
</asp:GridView>

Otros consejos

Tuve el mismo problema.

Para editar, hice lo siguiente:

        <asp:TemplateField ShowHeader="False">
            <ItemTemplate>
                <asp:LinkButton ID="EditButton"
                                runat="server"
                                CommandName="Edit" 
                                Text="Edit" />
            </ItemTemplate>
            <EditItemTemplate>
                <asp:LinkButton ID="UpdateButton"
                                runat="server"
                                CommandName="Update"
                                Text="Update" />&nbsp;
                <asp:LinkButton ID="Cancel"
                                runat="server"
                                CommandName="Cancel"
                                Text="Cancel" />
            </EditItemTemplate>
        </asp:TemplateField>

Esto permite mostrar / ocultar los botones de actualización y cancelación.

En cuanto a la eliminación, utilicé lo siguiente:

    <asp:TemplateField>
        <ItemTemplate>
            <asp:LinkButton ID="DeleteButton"
                            Text="Delete"
                            CommandName="Delete" 
                            runat="server" />
        </ItemTemplate>
    </asp:TemplateField>

haga clic en Columnas en las propiedades, agregue CommandField (Editar, actualizar, Cancelar) y haga clic en " Convertir este campo a templateField "

Cambia a la fuente y automáticamente agregará un código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top