FormViewのLinkButtonの代わりにImageButtonを使用して、新規/編集/削除/キャンセルコマンドを発行していますが、FormViewには影響がないようです。
ImageButtonsはポストバックを引き起こしますが、FormViewモードは現在のモードから変更されません。
ImageButtonsはある時点で機能していたと思いますが、私はしばらくの間他のページで忙しかったです。これまでに変更されたのは、VisualStudioにインストールしたパッチだけです。
これ以外に、この問題に関連する情報を見つけることができませんでした:http: //www.codeproject.com/KB/webforms/TamingTheFormView.aspx その記事には、変更に使用されるImageButtonのonclickメソッドがあります。 FormViewモード。
FormViewでLinkButtonの代わりに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をクリックしたとき、それらはどれも呼び出されていませんでしたが、LinkButtonを使用すると、すべてが正常に機能しました。
複雑なことは何もしていません。FormViewが基本的なImageButtonコマンドに応答するようにしたいだけです。