ASPxPopupControl появляется при каждой загрузке страницы
Я использую PoupControl для базовых всплывающих окон на главной странице проекта веб-формы asp.net. Моя проблема в том, Всплывающее окно отображается на каждой странице рендера после его отображения один раз. При нажатии кнопки "Закрыть" или "ОК" во всплывающем окне всплывающее окно скрывается. Это не должно появиться после каждого рендера страницы. Я пытаюсь использовать ShowOnPageLoad="false", но это не может работать.
Мастер. ASPX-страница, как это;
<dx:ASPxPopupControl ID="BasePopupControl" runat="server" Modal="true" HeaderText="" CloseAction="CloseButton" Theme="Moderno"
PopupHorizontalAlign="WindowCenter" AllowDragging="True" HeaderImage-IconID="actions_cancel_32x32" PopupVerticalAlign="WindowCenter"
Width="350" Height="150" ClientInstanceName="BasePopupControl" ShowOnPageLoad="false">
<ContentCollection>
<dx:PopupControlContentControl ID="PopupControlContentControl2" runat="server" HeaderStyle-HorizontalAlign="Left" HorizontalAlign="Center">
<table width="100%">
<tr align="center">
<td>
<dx:ASPxLabel runat="server" ID="lblMessage" ClientInstanceName="lblMessage" Theme="Moderno"></dx:ASPxLabel>
</td>
</tr>
<tr>
<td></td>
</tr>
<tr align="center">
<td>
<dx:ASPxButton ID="btnPopupOK" runat="server" Text="Tamam" Theme="Moderno">
<ClientSideEvents Click="function(s, e) { BasePopupControl.Hide(); e.processOnServer = false; }" />
</dx:ASPxButton>
</td>
</tr>
</table>
</dx:PopupControlContentControl>
</ContentCollection>
</dx:ASPxPopupControl>
<dx:ASPxGlobalEvents runat="server" ID="GlobalEvent" EnableViewState="false"></dx:ASPxGlobalEvents>
Эти коды для отображения всплывающих окон;
ASPxGlobalEvents popupEvent = null;
ASPxPopupControl popupControl = null;
if (this.Master != null)
{
popupEvent = (ASPxGlobalEvents)this.Master.FindControl("GlobalEvent");
popupControl = (ASPxPopupControl)this.Master.FindControl("BasePopupControl");
}
else
{
popupEvent = (ASPxGlobalEvents)this.Page.FindControl("GlobalEvent");
popupControl = (ASPxPopupControl)this.Page.FindControl("BasePopupControl");
}
if (popupEvent != null)
{
popupEvent.ClientSideEvents.ControlsInitialized = "function(s,e){lblMessage.SetText('" + Message + "'); BasePopupControl.Show();}";
switch (Type)
{
case BasePopupType.Error:
popupControl.HeaderImage.IconID = IconID.ActionsCancel32x32;
break;
case BasePopupType.Success:
popupControl.HeaderImage.IconID = IconID.ActionsApply32x32;
break;
default:
case BasePopupType.Info:
popupControl.HeaderImage.IconID = IconID.SupportInfo32x32;
break;
}
3 ответа
Один из них, методы которого вызывают метод ShowMessage.
protected void btnPopupNo__Click(object sender, EventArgs e)
{
PopupEvent.ClientSideEvents.ControlsInitialized = "function(s,e){MessagePopupControl.Hide();}";
List<object> reconcilationList = Session["ReconcilationList"] as List<object>;
ReconcilationManager manager = new ReconcilationManager();
StringBuilder errorMsg = new StringBuilder();
RCN_RECONCILATION oReconcilation = new RCN_RECONCILATION();
bool result = false;
foreach (object[] reconcilation in reconcilationList)
{
try
{
if (Convert.ToInt32(reconcilation[0]) == (int)ReconcilationStatus.OnayaGonder)
{
int reconcilationIDX = Convert.ToInt32(((object[])reconcilation)[1]);
oReconcilation = manager.GetReconcilationByIDX(reconcilationIDX);
result = manager.SendReconcilationForApprove(oReconcilation);
}
}
catch (OperationCanceledException ex)
{
errorMsg.Append(" \\n " + oReconcilation.ReconcilationNo + " Numaralı mütabakat gönderilemedi: " + ex.Message);
}
catch (DBConnectionException ex)
{
errorMsg.Append(" \\n " + oReconcilation.ReconcilationNo + " Numaralı mütabakat gönderilemedi: Hata Kodu: " + ex.ErrorCode + ", " + ex.ErrorMessage);
}
catch (DBValidationException ex)
{
errorMsg.Append(" \\n " + oReconcilation.ReconcilationNo + " Numaralı mütabakat gönderilemedi: Hata Kodu: " + ex.ErrorCode + ", " + ex.ErrorMessage);
}
catch (MailProviderException ex)
{
errorMsg.Append(" \\n " + oReconcilation.ReconcilationNo + " Numaralı mütabakat gönderilemedi: Hata Kodu: " + ex.ErrorCode + ", " + ex.ErrorMessage);
}
catch (Exception ex)
{
errorMsg.Append("\\n " + oReconcilation.ReconcilationNo + " Numaralı mütabakat gönderilemedi.");
}
}
if (errorMsg.Length > 0)
{
ShowMessage(errorMsg.ToString(), BasePopupType.Error);
}
else if (result)
{
ASPxGridView1.DataBind();
ShowMessage("İşlem tamamlandı.", BasePopupType.Success);
}
}
Если у вас есть какое-либо событие обратного вызова для других элементов управления в вашем пользовательском интерфейсе, то вам необходимо скрыть всплывающий элемент управления в конце события обратного вызова.
Также скрыть BasePopupControl
в событии нажатия кнопки btnPopupNo
:
PopupEvent.ClientSideEvents.ControlsInitialized = "function(s,e){BasePopupControl.Hide();}";
protected void ShowMessage(string Message, BasePopupType Type)
{
try
{
ASPxGlobalEvents popupEvent = null;
ASPxPopupControl popupControl = null;
if (this.Master != null)
{
popupEvent = (ASPxGlobalEvents)this.Master.FindControl("GlobalEvent");
popupControl = (ASPxPopupControl)this.Master.FindControl("BasePopupControl");
}
else
{
popupEvent = (ASPxGlobalEvents)this.Page.FindControl("GlobalEvent");
popupControl = (ASPxPopupControl)this.Page.FindControl("BasePopupControl");
}
if (popupEvent != null)
{
popupEvent.ClientSideEvents.ControlsInitialized = "function(s,e){lblMessage.SetText('" + Message + "'); BasePopupControl.Show();}";
switch (Type)
{
case BasePopupType.Error:
popupControl.HeaderImage.IconID = IconID.ActionsCancel32x32;
break;
case BasePopupType.Success:
popupControl.HeaderImage.IconID = IconID.ActionsApply32x32;
break;
default:
case BasePopupType.Info:
popupControl.HeaderImage.IconID = IconID.SupportInfo32x32;
break;
}
}
else
{
string script = "javascript:alert('" + Message + "');";
}
}
catch (Exception)
{
string script = "javascript:alert('" + Message + "');";
}
}`enter code here`