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.

Foi útil?

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:

  1. O seu popup modal é definida em uma UpdatePanel que é condicionalmente atualizado?
  2. Certifique-se de que o popup modal não é definido em um Panel que tem a sua visibilidade definida como falsa.
  3. 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();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top