1

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

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

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

除此以外,我找不到与此问题相关的任何信息:http: //www.codeproject.com/KB/webforms/TamingTheFormView.aspx 在那篇文章中有一个用于更改 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 命令。

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 回答