Por que ModalPopupExtender não mostra através de javascript?
-
22-08-2019 - |
Pergunta
Eu segui vários recursos da web para entender como para mostrar um pop-up a partir do lado do cliente, e eu fiz este código:
<asp:ImageButton runat="server" ID="btnOk" ImageUrl="imagens/btnAlterar.gif" OnClientClick="btnOkClick()" />
<asp:LinkButton runat="server" ID="dummyForPopup" Visible="false"/>
<ajaxToolKit:ModalPopupExtender runat="server" BehaviorID="btnOkPopupBehavior" ID="MPXtender" TargetControlID="dummyForPopup" PopupControlID="pnlUpdateUserModal" BackgroundCssClass="modalBackground" OkControlID="btnCloseRequestUserUpdate" OnOkScript="userUpdReq_onOk()" />
function btnOkClick()
{
if(validateAll())
{
var behavior = $find('btnOkPopupBehavior');
if (behavior)
{
behavior.show();
}
else
{
var lblOutput = $get('<%= lblOutput .ClientID %>');
lblOutput .innerText = 'Couldn't find popup';
}
}
}
anteriormente tive a popup modal vinculado ao botão ok, ele estava funcionando muito bem. Agora eu preciso de alguma validação antes de abrir o pop-up, e este código não está funcionando anylonger = /
Solução
1) Seu botão manequim tem que ser visível = true, caso contrário o javascript não funciona corretamente. Portanto, definir nenhum visível = true mas disaply com css:
<asp:LinkButton runat="server"
ID="dummyForPopup" style
="display:none" Visible="true" />
2) lblOutput .innerText = 'Não foi possível encontrar pop-up'; é um erro de javascript. Você precisa alterá-lo para: "Não foi possível encontrar pop-up"; (Ou uso '
)
3) OnClientClick = "btnOkClick ()" deve realmente dizer: OnClientClick = "btnOkClick (); falsa retorno;"
4) Procure quaisquer outros erros de javascript em sua página porque aqueles vai parar o pop-up de workign corretamente.