簡體   English   中英

FormView觸發了未處理的事件ModeChanging。

[英]The FormView fired event ModeChanging which wasn't handled.

好的,所以我在努力使用asp:formview。

我已經啟動並運行了formview,並添加了“編輯”按鈕。

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

我已經在后面的代碼中嘗試了以下解決方案-它們都不起作用:

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

和這個:

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

單擊“編輯”按鈕只會給我以下錯誤消息:

FormView'fwHotelDetails'觸發了事件ModeChanging,該事件未處理

還需要做些什么?

此頁面是FormView控制器的出色參考: http : //authors.aspalliance.com/aspxtreme/sys/web/ui/webcontrols/FormViewClass.aspx

更新:我已更新代碼以拒絕Phaedrus的建議。 當前狀態是,即使單擊“編輯”按鈕后,也會加載ItemTemplate中的內容。

您必須指定處理ModeChanging事件的方法。 當FormView控件嘗試在編輯,插入和只讀模式之間切換時,但是在實際更改模式之前,會引發此事件。

<asp:FormView OnModeChanging="fwHotelDetails_ModeChanging" />

方法簽名的第二個參數是“ DetailsViewModeEventArgs”,它應該是“ FormViewModeEventArgs”。

void fwHotelDetails_ModeChanging(Object sender, FormViewModeEventArgs e)
{
}

只需在formview的Item_Command編寫代碼

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();
            }

        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM