FormView вызвало событие ModeChanging, которое не было обработано. - PullRequest
0 голосов
/ 18 сентября 2009

Хорошо, я борюсь с использованием asp: 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

Обновление: Я обновил код для отражения предложения Федра. Текущее состояние таково, что даже после нажатия кнопки «Редактировать» содержимое из ItemTemplate загружается.

Ответы [ 2 ]

3 голосов
/ 18 сентября 2009

Вы должны указать, какой метод обрабатывает событие ModeChanging . Это событие возникает, когда элемент управления FormView пытается переключиться между режимами редактирования, вставки и только для чтения, но до того, как этот режим действительно изменится.

<asp:FormView OnModeChanging="fwHotelDetails_ModeChanging" />

Второй параметр подписи вашего метода - «DetailsViewModeEventArgs», это должно быть «FormViewModeEventArgs».

void fwHotelDetails_ModeChanging(Object sender, FormViewModeEventArgs e)
{
}
0 голосов
/ 11 марта 2014

Просто введите код в форме просмотра 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();
            }

        }
...