Панель обновления AJAX - щелчок кнопкой мыши на выпадающем списке - PullRequest
1 голос
/ 11 августа 2010

Вечер всех

У меня есть следующий сценарий. У меня есть ряд выпадающих меню, где клиент может выбрать. Приведенный ниже код помещается в панель обновлений, но без этого нажатие кнопки вызывает метод получения количества продуктов. Так, например, элемент выбирается из ddlCategory, щелкается btnValidate и метка возвращает количество продуктов в этой категории.

У меня есть следующий код для панели обновления - я просто не знаю, как реализовать это эффективно.

<asp:UpdatePanel ID="UpdatePanel1" runat="Server">
            <ContentTemplate>

        <asp:Label ID="lblSearchResultsStatus" runat="server" Text="Number of results found: "></asp:Label>
        <asp:Label ID="lblSearchResults1" runat="server" Text=""></asp:Label>
            <br />
        <br />
        <asp:Button ID="btnValidate" runat="server" Text="Validate Search" 
                OnClick="btnValidate_Click" Width="120px" />
                 </ContentTemplate>
            </asp:UpdatePanel>

Как мне подключить панель обновления, чтобы при выборе элемента в раскрывающемся списке эффективно нажимался на кнопку?

Нужно ли что-то реализовывать в каждом событии ddlSelectedIndexChanged или на панели обновления есть свойство, которое это делает?

Извиняюсь за вопрос нуба.

Ответы [ 2 ]

1 голос
/ 12 августа 2010

Задача UpdatePanel - обновить часть страницы с помощью AsyncPostBack вместо перезагрузки всей страницы, но для того, чтобы раскрывающиеся списки автоматически вызывали AsyncPostBack, они должны быть на UpdatePanel.Чтобы обновить метки, они должны быть на одной панели UpdatePanel с метками.

Общий шаблон для реализации того, что вы хотите выполнить:

  • Поместите DDL в UpdatePanelи установите AutoPostBack = "true" для каждого DDL, чтобы они вызывали AsyncPostBacks.
  • Добавить обработчик события для SelectedIndexChanged для каждого DDL (может быть одним и тем же обработчиком событий).
  • Переместить все, что вы делаете в btnValidate_Click, в другой метод.
  • Вызвать новый методиз btnValidate_Click и обработчиков событий SelectedIndexChanged, поэтому они все выполняют одну и ту же функцию.
0 голосов
/ 11 августа 2010

Вы можете вызвать событие btnValidate_Click из codebehind в любой момент, например, Page_Load

protected void Page_Load(object sender, EventArgs e)
{
    btnValidate_Click(btnValidate, new EventArgs());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...