Я создаю пользовательский веб-элемент управления для отображения оповещений в столбцах AspxGridView (удаление / редактирование) при сбое на стороне сервера.Например:
Удалено отключено в строке, затем, если, как при просмотре сетки asp при удалении команды fire, то при удалении показывать сообщение, что удаление не разрешено / подтвердить перед удалением, как мы делаем в приложении Windows ..
Причина:
To reduce the database hit for checking that user allowed to delete/ Edit
particular record.
I do not want to check thousand of rows to disable them OnHtmlRowCreated Event
of AspxGridView
Я взял идею из этого codeproject ajax включил окно подтверждения / окно сообщения .Здесь он использует пользовательские элементы управления ajax.Он использует панель обновлений и элемент управления Molalpopupextender для создания этого пользовательского элемента управления.
Он предоставляет эти функции.
The MessageBox should have a simple usage. We should show the message with such a single line of code.
The MessageBox should be modal. I mean, a user should not be able to do any other operation while the message is open.
The MessageBox should support multiple messages. Multiple messages may be shown through one postback.
The MessageBox should have a different appearance according to the type of the message, whether it is an error message or just an information message.
The MessageBox should have confirmation functionality.
The MessageBox should be AJAX ready.
Плюсы: этот пользовательский элемент управления может вызываться на стороне сервера и может обновляться насерверные функции элементов управления ajax.
Я не хочу включать библиотеку Ajax в мой проект.так что я сделал, чтобы использовать это мое решение следующим образом:
Replaced Update Panel with CallbackPanel control
Replaced PopupExtender with DevExpress PopupControl
Add all content of the PopupExtender target panel's control to PopupControl content Collection
Проблема: DevExpress Control не имеет метода Update, такого как элементы управления ajax, и все эти callbackpanel и popupcontrol в основном работают на Callback.
Это событие PreRender пользовательского контроля.Где пользовательский элемент управления обновляется при обратной передаче.Я хочу обновить это в gridview Событие OnDeleting
защищенное переопределение void OnPreRender (EventArgs e) {base.OnPreRender (e);
if (btnOK.Visible == false)
mpeMsg.OkControlID = "btnD2";
else
mpeMsg.OkControlID = "btnOK";
if (Messages.Count > 0)
{
btnOK.Focus();
grvMsg.DataSource = Messages;
grvMsg.DataBind();
mpeMsg.Show(); /// Show AspxPopupControl like as like modalpopupExtender
udpMsj.Update(); // I want to update CallbackPanel like this
}
else
{
grvMsg.DataBind();
udpMsj.Update(); /// I want to update CallbackPanel like this
}
if (this.Parent.GetType() == typeof(UpdatePanel))
{
UpdatePanel containerUpdatepanel = this.Parent as UpdatePanel;
containerUpdatepanel.Update();
}
}
Существует другой способ реализации этой функции, например созданиеконтролирует на другой странице и загружает визуализированный HTML в popupcontrol.но это функция клиента на стороне клиента в Callback.
Я знаю функциональность обратного вызова с этими элементами управления, но я хочу, чтобы этот usercontrol автоматизировал себя, поскольку элемент управления Ajax делает то же самое, что и элементы управления Windows, но в DevExpress нет способа реализоватьиспользуя элементы управления DevExpress, которые обеспечивают функциональность на стороне сервера.