FormViews不响应从ImageButton发出的命令吗?

时间:2010-04-07 12:34:51

标签: asp.net command formview linkbutton imagebutton

我在FormView中使用ImageButtons代替LinkBut​​tons来发出新建/编辑/删除/取消命令,但它们似乎对FormView没有影响。

ImageButtons将导致回发,但FormView模式不会从当前模式更改。

我确定ImageButtons一直在工作,但我一直忙于其他页面。从现在到现在,唯一改变的是我在Visual Studio中安装的一些补丁。

除此之外,我无法找到与此问题相关的任何信息:http://www.codeproject.com/KB/webforms/TamingTheFormView.aspx在该文章中,有一个用于更改FormView模式的ImageButton的onclick方法。

这是在FormView中使用ImageButtons而不是LinkBut​​tons的唯一方法吗?

以下是一些代码片段:

<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命令。

2 个答案:

答案 0 :(得分:0)

要进行测试,表单应该有一个Command或ItemCommand事件,当点击该命令时将触发该事件...附加到它并测试以查看它是否触发,并且e.CommandName是编辑...(我认为有一个命令参数,但我不是100%肯定的。)

这至少会告诉我们这是否有效......如果发生这种情况,你至少可以将其改编成编辑模式。

HTH。

答案 1 :(得分:0)

问题是我在Master页面中调用了Page.DataBind()。我不确定这是怎么干扰的,但我删除了电话并重新编码了页面,所以没有必要。