Bezdepbonusu7Программирование: статьи и ответы

Вопрос

ASP.NET AJAX всплывает на странице в виде модального окна

Автор вопроса: kacalapyОтветов: 3

я хочу добавить данные в БД, используя модальное всплывающее окно страницы .aspx.

поэтому у меня есть сетка с некоторыми данными таблицы SQL о сотрудниках. я хочу, чтобы где-то на этой странице была кнопка или ссылка, чтобы пользователи могли добавлять записи в БД, а затем обновлять сетку, чтобы отображать новые данные.

у меня есть addEmployee.aspx, который я хочу открыть в модальном окне (и затемнить базовую страницу, как я вижу на некоторых сайтах), что позволяет пользователям вводить данные и сохранять их в БД в addEmployee.aspx. на этой странице есть вся логика sql и проверки, инкапсулированная для этой работы. когда добавление завершено, я хочу предупредить пользователя, что оно ушло (вероятно, лучше всего после закрытия всплывающего окна и отображения сообщения на главной странице, также я хочу обновить информацию о сетке данных из БД, чтобы она отражала новые добавлена ​​запись.

может ли кто-нибудь указать мне направление, чтобы получить этот тип функциональности без необходимости писать код в течение нескольких недель, чтобы получить его.

если у вас есть лучшее решение, я весь внимание !!!

Спасибо

jquery

Ответы

Ответ 1 · рейтинг 1 · Jagmag

Если вместо этого вы можете инкапсулировать функциональность addEmployee.aspx в пользовательский элемент управления, вы можете добавить этот пользовательский элемент управления (addEmployee.ascx) на страницу с сеткой (например, viewEmployee.aspx).

Затем, используя расширитель модального всплывающего окна (в случае, если вы используете набор инструментов управления ajax), вы можете показать этот элемент управления addEmployee.ascx, в котором у пользователя есть кнопка сохранения с соответствующей логикой для добавления сотрудника.

Кроме того, если вы используете панели обновлений (опять же в случае набора инструментов управления ajax), вы выполняете listofEmployeeUpdatePanel.Update(), который обновляет список элементов в сетке.

Вот как я сейчас реализую очень похожий вариант использования в своем текущем приложении.

Один из недостатков этого подхода: пользовательский элемент управления addEmployee.ascx является частью исходной страницы и увеличивает размер независимо от того, используется он или нет.

Ответ 2 · mehul9595

в вашем случае вы можете использовать плагин jquery facebox, чтобы показать модальное всплывающее окно, или вы также можете обратиться к прототипу javascript, который очень гибкий и простой в использовании.

Для фейсбокса фейсбокс позволяет отображать iframe как модальное всплывающее окно. так что вы можете поместить свою ссылку в iframe. Альтернативой "facebox" является "fancybox" с приятным графическим интерфейсом. Это работает фантастически, потому что я использовал его раньше.

Надеюсь, что это поможет вам.

Ответ 3 · Jemes

Вы можете поместить IFrame в свое модальное окно, указывающее на addEmployee.aspx. Затем добавьте скрытую кнопку на главную страницу, например:

<div style="visibility: hidden; display: none;">
    <asp:Button ID="btnHidden" runat="server" />
</div>

Добавьте Cick даже к скрытой кнопке, которая должна содержать код для обновления вашей сетки:

protected void btnHidden_Click(object sender, EventArgs e)
{
  //Hidden button was clicked.  Update grid.
}

Затем в событии щелчка "Добавить" в addEmployee.aspx добавьте код, сообщающий главной странице об отправке и обновлении сетки:

  private void SubmitParentPage()
    {
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "submitHiddenButton", "window.parent.submitHiddenButton();", true);
    }

Вот функция javascript, которая вызывается на главной странице:

function submitHiddenButton() {
    var btn = $get('<%= btnHidden.ClientID %>');
    btn.click();
}

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы