我在FormView中使用ImageButtons代替LinkButtons来发出新建/编辑/删除/取消命令,但它们似乎对FormView没有影响。
ImageButtons将导致回发,但FormView模式不会从当前模式更改。
我确定ImageButtons一直在工作,但我一直忙于其他页面。从现在到现在,唯一改变的是我在Visual Studio中安装的一些补丁。
除此之外,我无法找到与此问题相关的任何信息:http://www.codeproject.com/KB/webforms/TamingTheFormView.aspx在该文章中,有一个用于更改FormView模式的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命令。
答案 0 :(得分:0)
要进行测试,表单应该有一个Command或ItemCommand事件,当点击该命令时将触发该事件...附加到它并测试以查看它是否触发,并且e.CommandName是编辑...(我认为有一个命令参数,但我不是100%肯定的。)
这至少会告诉我们这是否有效......如果发生这种情况,你至少可以将其改编成编辑模式。
HTH。
答案 1 :(得分:0)
问题是我在Master页面中调用了Page.DataBind()。我不确定这是怎么干扰的,但我删除了电话并重新编码了页面,所以没有必要。