Outra questão emergente extensor modal
-
05-07-2019 - |
Pergunta
Eu estou tentando obter um popup modal para o trabalho, ele precisa ser acionado no código por trás.
<asp:Button ID="btnModalPopUp" runat="server" Text="Button" Style="display: none" />
<asp:Panel ID="pnlModalPopup" runat="server" CssClass="modalPopup" Style="display: none"
Width="233px">
<div id="Div1" runat="server" cssclass="title">
Modal text here.
<asp:TextBox ID="txtEditComments" runat="server"></asp:TextBox>
</div>
</asp:Panel>
<cc1:ModalPopupExtender ID="modalMessage" runat="server" TargetControlID="btnModalPopUp"
PopupControlID="pnlModalPopup" BackgroundCssClass="modalBackground" DropShadow="true"/>
código por trás:
protected void Page_Load(object sender, EventArgs e)
{
modalMessage.Show();
}
Mesmo que ela atinge o "modalMessage.Show ();" código não mostra o painel modal.
Solução
Duas soluções:
A primeira solução:
Remove Style="display:none"
do pnlModalPopup
.
A primeira solução é fará com que o pop-up para "flash" na tela quando a página é carregada pela primeira vez, e depois desaparecem rapidamente.
A segunda solução:
protected void Page_Load(object sender, EventArgs e)
{
pnlModalPopup.Style["display"] = "block";
modalMessage.Show();
}
Recomendação: Eu recomendaria usar a segunda solução, de que maneira o popup modal não flicker e depois desaparecem.
Editar: Eu só testou seu código:
Eu só testou seu código em uma página simples que continha apenas o código que você forneceu ... Ele trabalhou como esperado .
Verifique o seguinte:
- O seu popup modal é definida em uma
UpdatePanel
que é condicionalmente atualizado? - Certifique-se de que o popup modal não é definido em um
Panel
que tem a sua visibilidade definida como falsa. - Se isso não funcionar, em seguida, verificar se o popup modal é realmente no código fonte da página web renderizada.
Outras dicas
Ouça o comentário de Chris, pois é necessário:
display: none é cosmeticamente necessário, caso contrário, o pop-up será exibida quando a página está carregando, então vai rapidamente desaparecem enquanto o ModalPopupExtender entra em ação e esconde.
Nós tivemos que fazer o nosso show como este:
pnlModalPopup.Visible = true;
modalMessage.Show();