1

FormViewのLinkBut​​tonの代わりにImageButtonを使用して、新規/編集/削除/キャンセルコマンドを発行していますが、FormViewには影響がないようです。

ImageButtonsはポストバックを引き起こしますが、FormViewモードは現在のモードから変更されません。

ImageButtonsはある時点で機能していたと思いますが、私はしばらくの間他のページで忙しかったです。これまでに変更されたのは、VisualStudioにインストールしたパッチだけです。

これ以外に、この問題に関連する情報を見つけることができませんでした:http: //www.codeproject.com/KB/webforms/TamingTheFormView.aspx その記事には、変更に使用されるImageButtonのonclickメソッドがあります。 FormViewモード。

FormViewでLinkBut​​tonの代わりにImageButtonを使用する唯一の方法でしょうか?

ここにいくつかのコードフラグメントがあります:

<asp:FormView ID="CourseFormView" runat="server" DataKeyNames="CourseCode" 
    DataSourceID="CourseSqlDataSource" ondatabound="CourseFormView_DataBound">
    <ItemTemplate>
        <table>...</table>
        <asp:ImageButton ID="EditCourseImageButton" CssClass="image_button"
            runat="server" CommandName="Edit"
            ImageUrl="~/images/icons/pencil.png" />
     </ItemTemplate>
</asp:FormView>

コードビハインド:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["code"] == null ||
                Request.QueryString["code"] == "")
        {
            CourseFormView.ChangeMode(FormViewMode.Insert);
            CourseCodeTitleLabel.Visible = false;
            CourseTitleTitleLabel.Text = "Add a new course...";
            SchedulePanel.Visible = false;
        }

    }

ボタンを処理するための他のコードはありません。何が起こっているかを確認するために、FormView用の空のイベントハンドラー(ModeChanging、ModeChanged、およびItemCommand)をいくつか作成しました。ImageButtonをクリックしたとき、それらはどれも呼び出されていませんでしたが、LinkBut​​tonを使用すると、すべてが正常に機能しました。

複雑なことは何もしていません。FormViewが基本的なImageButtonコマンドに応答するようにしたいだけです。

4

2 に答える 2

0

テストするには、コマンドがクリックされたときに起動するCommandまたはItemCommandイベントがフォームに含まれている必要があります...フォームに添付してテストし、起動し、e.CommandNameが編集されていることを確認します...(はコマンドパラメータですが、100%確実ではありません)。

それは少なくともそれが機能しているかどうかを教えてくれます...それが発生した場合は、少なくともプログラムで編集モードに変更できます。

HTH。

于 2010-04-07T13:08:24.667 に答える
0

問題は、マスターページでPage.DataBind()を呼び出していたことです。それがどのように干渉するかはわかりませんが、呼び出しを削除してページを再コーディングしたので、必要ありません。

于 2010-04-07T16:24:56.047 に答える