Question

J'ai un GridView. Mon GridView contient une colonne contenant un "Options". colonne. Cette colonne inclut les options traditionnelles de CommandField (édition, suppression, etc.). J'ai la configuration du code pour fonctionner lorsqu'un CommandField est utilisé. Cependant, je dois faire une mise en forme personnalisée et j'ai donc eu besoin de convertir CommandField en TemplateField.

Ma question est la suivante: comment déclencher les événements OnRowCommand, OnRowEditing, OnRowDeleting et OnRowUpdating à partir des divers éléments LinkButton de mon TemplateField?

Merci!

Était-ce utile?

La solution

Tout ce que vous avez à faire est de définir la propriété CommandName du LinkButton à l'intérieur de votre colonne de modèle sur "Modifier" pour le modifier, "Supprimer" pour le supprimer et "Mettre à jour" pour la mise à jour. Cela déclenchera les événements GridView RowEditing, RowDeleting et RowUpdating respectivement. Pour déclencher l'événement RowCommand, vous devez définir la propriété OnRowCommand de votre contrôle 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>

Autres conseils

J'ai eu le même problème.

Pour l'édition, j'ai procédé comme suit:

        <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>

Ceci permet d'afficher / masquer les boutons de mise à jour et d'annulation.

En ce qui concerne la suppression, j’ai utilisé les éléments suivants:

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

cliquez sur Colonnes dans les propriétés, ajoutez ChampCommande (Modifier, mettre à jour, annuler) et cliquez sur le lien "Convertir ce champ en modèleField".

Basculez vers la source et allez automatiquement ajouter un code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top