Разве FormViews не отвечают на команды из ImageButton? - PullRequest
1 голос
/ 07 апреля 2010

Я использую ImageButtons вместо LinkButtons в FormView для выдачи команд New / Edit / Delete / Cancel, но, похоже, они не влияют на FormView.

Кнопка ImageButtons вызовет обратную передачу, но режим FormView не отличается от текущего режима.

Я уверен, что кнопки ImageButton работали в один момент, но некоторое время я был занят другими страницами. Единственное, что изменилось между этим моментом - это некоторые исправления, которые я установил в Visual Studio.

Мне не удалось найти никакой информации, связанной с этой проблемой, кроме этой: http://www.codeproject.com/KB/webforms/TamingTheFormView.aspx В этой статье есть метод onclick для ImageButton, который используется для изменения режима FormView.

Это единственный способ использовать ImageButtons вместо LinkButtons в FormView?

Вот несколько фрагментов кода:

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

Codebehind:

    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.

Ответы [ 2 ]

0 голосов
/ 07 апреля 2010

Проблема заключалась в том, что я вызывал Page.DataBind () на моей главной странице. Я не уверен, как это мешает, но я удалил вызов и перекодировал страницу, так что в этом нет необходимости.

0 голосов
/ 07 апреля 2010

Чтобы проверить, форма должна иметь событие Command или ItemCommand, которое будет срабатывать при нажатии на команду ... присоединиться к ней и проверить, что она запускается и что e.CommandName является edit ... ( Я думаю, что есть командный параметр, но я не уверен на 100%).

Это по крайней мере скажет нам, если это работает ... если это сработает, вы можете по крайней мере программно изменить его на режим редактирования.

НТН.

...