Domanda

Ok, quindi sto lottando con l'utilizzo di asp: formview.

Ho il formview attivo e funzionante e ho aggiunto il pulsante 'Modifica'.

<asp:FormView runat="server" id="fwHotelDetails" DataKeyNames="id" OnDataBound="fwHotelDetails_DataBound" OnModeChanging="fwHotelDetails_ModeChanging" >
    <ItemTemplate>
        // (..) some code here which outputs some data

        <asp:Repeater runat="server" id="repScore">
          <ItemTemplate>
            <span class="item"> Some output here</span>
            <asp:LinkButton ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit" />
          </ItemTemplate>
        </asp:Repeater>

        <EditItemTemplate>
             Test test, anything??
        </EditItemTemplate>

    </ItemTemplate>
</asp:FormView>

Ho provato le seguenti soluzioni nel codice dietro - nessuno di loro funziona:

protected void fwHotelDetails_ItemCommand(object sender, FormViewModeEventArgs e)
{
    if (e.CommandName.Equals("Edit"))
    {
        fwHotelDetails.ChangeMode(e.NewMode);
    }
}

e questo:

protected void fwHotelDetails_ModeChanging(object sender, System.Web.UI.WebControls.DetailsViewModeEventArgs e)
{
    fwHotelDetails.ChangeMode((FormViewMode)e.NewMode);
}

Fare clic sul pulsante Modifica mi dà solo il seguente messaggio di errore:

  

L'evento FormView 'fwHotelDetails' ha generato ModeChanging che non è stato gestito

Cosa bisogna fare di più?

Questa pagina è un ottimo riferimento per il controller FormView: http : //authors.aspalliance.com/aspxtreme/sys/web/ui/webcontrols/FormViewClass.aspx

Aggiornamento: ho aggiornato il codice per rifare il suggerimento Fedro. Lo stato attuale è che anche dopo aver fatto clic sul pulsante Modifica, viene caricato il contenuto di ItemTemplate.

È stato utile?

Soluzione

Devi specificare quale metodo gestisce la ModeChanging . Questo evento viene generato quando un controllo FormView tenta di passare dalla modalità di modifica, inserimento e sola lettura, ma prima che la modalità cambi effettivamente.

<asp:FormView OnModeChanging="fwHotelDetails_ModeChanging" />

Il secondo parametro della firma del metodo è 'DetailsViewModeEventArgs', dovrebbe essere 'FormViewModeEventArgs'.

void fwHotelDetails_ModeChanging(Object sender, FormViewModeEventArgs e)
{
}

Altri suggerimenti

Basta semplicemente scrivere il codice nel Item_Command di formview

protected void formview_ItemCommand(object sender, FormViewCommandEventArgs e)

        {

            if (e.CommandName == "Edit")
            {
                formview.DefaultMode = FormViewMode.Edit;
                formview.DataBind();
            }
            if (e.CommandName == "Cancel")
            {
                formview.DefaultMode = FormViewMode.ReadOnly;
                formview.DataBind();
            }

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