я хочу добавить данные в БД, используя модальное всплывающее окно страницы .aspx.
поэтому у меня есть сетка с некоторыми данными таблицы SQL о сотрудниках. я хочу, чтобы где-то на этой странице была кнопка или ссылка, чтобы пользователи могли добавлять записи в БД, а затем обновлять сетку, чтобы отображать новые данные.
у меня есть addEmployee.aspx, который я хочу открыть в модальном окне (и затемнить базовую страницу, как я вижу на некоторых сайтах), что позволяет пользователям вводить данные и сохранять их в БД в addEmployee.aspx. на этой странице есть вся логика sql и проверки, инкапсулированная для этой работы. когда добавление завершено, я хочу предупредить пользователя, что оно ушло (вероятно, лучше всего после закрытия всплывающего окна и отображения сообщения на главной странице, также я хочу обновить информацию о сетке данных из БД, чтобы она отражала новые добавлена запись.
может ли кто-нибудь указать мне направление, чтобы получить этот тип функциональности без необходимости писать код в течение нескольких недель, чтобы получить его.
если у вас есть лучшее решение, я весь внимание !!!
Спасибо
Ответ 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();
}