Domanda

Ho un GridView. My GridView ha una colonna che contiene un " Opzioni " colonna. Questa colonna include le opzioni CommandField tradizionali (modifica, eliminazione, ecc.). Ho la configurazione del codice per funzionare quando viene utilizzato un CommandField. Tuttavia, devo eseguire alcune formattazioni personalizzate, quindi ho bisogno di convertire CommandField in TemplateField.

La mia domanda è: come posso attivare gli eventi OnRowCommand, OnRowEditing, OnRowDeleting e OnRowUpdating dai vari elementi LinkButton in TemplateField?

Grazie!

È stato utile?

Soluzione

Tutto quello che devi fare è impostare la proprietà CommandName di LinkButton all'interno della colonna del modello su "Modifica" per la modifica, "Elimina" per l'eliminazione e "Aggiorna" per l'aggiornamento. Ciò attiverà rispettivamente gli eventi RowEditing, RowDeleting e RowUpdating di GridView. Per attivare l'evento RowCommand è necessario impostare la proprietà OnRowCommand del controllo 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>

Altri suggerimenti

Ho avuto lo stesso problema.

Per la modifica, ho fatto quanto segue:

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

Ciò consente di mostrare / nascondere i pulsanti di aggiornamento e annullamento.

Per quanto riguarda la cancellazione, ho usato quanto segue:

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

fai clic su Colonne nelle proprietà, aggiungi CommandField (Modifica, aggiorna, Annulla) e fai clic su " Converti questo campo in templateField "

Scorri su Source e automaticamente aggiungerà un codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top