Вложенное пользовательское управление Linkbutton Onclick событие не запускается после обратной передачи - asp.net/C# - PullRequest
3 голосов
/ 13 сентября 2011

Я использую вложенные элементы управления для ряда форм и у меня возникают проблемы с событием onclick.

Я просто использую текстовые поля и ручную вставку с выделенным кодом, а не структуру вида Gridview / Details.

Сценарий таков, что у меня есть форма страхования автомобиля, где пользователи могут добавлять дополнительных именованных водителей.Вверху находится раздел, в который вы добавляете свои собственные данные (который является отдельным пользовательским элементом управления), а также есть раздел, в котором вы можете добавить до 4 именованных драйверов (который также является отдельным пользовательским элементом управления).Я хотел использовать событие onclick кнопки «Добавить драйвер», чтобы добавить детали в базу данных, а затем очистить поля формы, чтобы пользователь мог добавить еще один драйвер.Это все работает нормально, пока вы снова не нажмете кнопку «Добавить драйвер» и обнаружите, что она не работает.

Это родительский элемент управления, в котором находится пользовательский элемент управления «Добавить драйвер»:

        <h2>Add Permanent Driver</h2>
    <asp:ValidationSummary ID="uxValidationSummary" runat="server" ShowSummary="true" ValidationGroup="ChangeDetails" />
    <div class="clear"></div>
    <h3>
        Please enter your details below as they are on your insurance documents</h3>

    <uc1:UserDetails ID="uxUserDetails" runat="server" />

    <uc2:AddDriver ID="uxAddDriver" EntryType="Permanent" runat="server" />

Это сокращенная версия события onclick для кнопки «Добавить драйвер» на элементе управления AddDriver

protected void uxSubmit_Click(object sender, EventArgs e)
    {
        Page.Validate("AddDriver");
        if (Page.IsValid)
        {
            DriverDAL.DriverTableAdapters.DriverTableAdapter taDriver = new DriverDAL.DriverTableAdapters.DriverTableAdapter();
            taDriver.DriverInsert(StartDate, EndDate, Title,
                FirstName, Surname, DateOfBirth, Gender);

            uxDriverList.DataBind();

            uxDate.Text = string.Empty;
            uxEndDate.Text = string.Empty;
            uxTitle.SelectedIndex = 0;
            uxFirstName.Text = string.Empty; 
            uxSurname.Text = string.Empty;
            uxDateOfBirth.Text = string.Empty;
            uxGender.SelectedIndex = 0;
        }   
    }

Можно ли что-нибудь сделать, чтобы повторно активировать эту кнопку ссылки после первого нажатия кнопки OnClick (или удалить ее и заново создать)так я могу добавить несколько драйверов?Я пытался привязать кнопку к кнопке после отправки, но, как и ожидалось, это не дало эффекта, но это именно то, что я ищу.Я не могу перенаправить страницу, потому что, как упоминалось ранее в посте, она использует вложенные элементы управления, и я прихожу к этой форме, используя событие SelectedIndexChanged DropDownList.

Любые идеи приветствуются - спасибо.Дайте мне знать, если потребуется дополнительная информация.

1 Ответ

3 голосов
/ 13 сентября 2011

Похоже, у вас может быть какая-то проверка, которая не позволяет кнопке выполнить обратную передачу. Попробуйте установить CausesValidation="false" и посмотрите, будет ли это иметь значение.

Если проблема вызвана валидацией, я бы либо разделил валидацию на группы и назначил кнопку определенной группе, либо переключил бы включенное состояние валидаторов на основании некоторого условия, например:

RequiredFieldValidator1.Enabled = Panel1.Visible;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...