質問

わかりましたので、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

更新:コードを更新して、Phaedrusの提案を拒否しました。 現在のステータスでは、[編集]ボタンをクリックした後でも、ItemTemplateのコンテンツがロードされます。

役に立ちましたか?

解決

ModeChanging イベント。このイベントは、FormViewコントロールが編集モード、挿入モード、読み取り専用モードを切り替えようとしたときに、モードが実際に変更される前に発生します。

<asp:FormView OnModeChanging="fwHotelDetails_ModeChanging" />

メソッドシグネチャの2番目のパラメーターは「DetailsViewModeEventArgs」で、「FormViewModeEventArgs」である必要があります。

void fwHotelDetails_ModeChanging(Object sender, FormViewModeEventArgs e)
{
}

他のヒント

フォームビューの 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帰属
所属していません StackOverflow
scroll top