我在 FormView 中使用 ImageButtons 代替 LinkButtons 来发出新建/编辑/删除/取消命令,但它们似乎对 FormView 没有影响。
ImageButtons 将导致回发,但 FormView 模式不会从当前模式更改。
我确定 ImageButtons 在某一时刻工作,但我一直忙于其他页面一段时间。从现在到现在唯一改变的是我在 Visual Studio 中安装的一些补丁。
除此以外,我找不到与此问题相关的任何信息:http: //www.codeproject.com/KB/webforms/TamingTheFormView.aspx 在那篇文章中有一个用于更改 ImageButton 的 onclick 方法窗体视图模式。
那是在 FormView 中使用 ImageButtons 而不是 LinkButtons 的唯一方法吗?
以下是一些代码片段:
<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 命令。