简体   繁体   English

FormView触发了未处理的事件ModeChanging。

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

Ok, so I'm struggling with using asp:formview. 好的,所以我在努力使用asp:formview。

I've got the formview up and running and I've added the 'Edit' button. 我已经启动并运行了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>

I've tried thefollowing solutions in the code behind - none of them works: 我已经在后面的代码中尝试了以下解决方案-它们都不起作用:

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

and this: 和这个:

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

Clicking the Edit button only gives me the following error message: 单击“编辑”按钮只会给我以下错误消息:

The FormView 'fwHotelDetails' fired event ModeChanging which wasn't handled FormView'fwHotelDetails'触发了事件ModeChanging,该事件未处理

What more needs to be done? 还需要做些什么?

This page is a great reference for FormView controller: http://authors.aspalliance.com/aspxtreme/sys/web/ui/webcontrols/FormViewClass.aspx 此页面是FormView控制器的出色参考: http : //authors.aspalliance.com/aspxtreme/sys/web/ui/webcontrols/FormViewClass.aspx

Update: I've updated code to refelct Phaedrus suggestion. 更新:我已更新代码以拒绝Phaedrus的建议。 Current status is that even after clicking Edit button, the content from ItemTemplate is loaded. 当前状态是,即使单击“编辑”按钮后,也会加载ItemTemplate中的内容。

You have to specify which method handles the ModeChanging event. 您必须指定处理ModeChanging事件的方法。 This event is raised when a FormView control attempts to switch between edit, insert, and read-only mode, but before the mode actually changes. 当FormView控件尝试在编辑,插入和只读模式之间切换时,但是在实际更改模式之前,会引发此事件。

<asp:FormView OnModeChanging="fwHotelDetails_ModeChanging" />

The second parameter of your method signature is 'DetailsViewModeEventArgs' it should be 'FormViewModeEventArgs'. 方法签名的第二个参数是“ DetailsViewModeEventArgs”,它应该是“ FormViewModeEventArgs”。

void fwHotelDetails_ModeChanging(Object sender, FormViewModeEventArgs e)
{
}

Just Simply write code in formview's Item_Command 只需在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