我创建了2个modaldialogs。我的问题是,如果满足一些条件(点击按钮后),我需要从服务器端显示它们。我一直在谷歌搜索,有一个解决方案,将扩展器添加到一个不可见的控件,并从代码启动它。 但由于没有任何表现,我想我做错了什么。我点击链接按钮尝试了一下,看看是否正常,这显示了对话框。
提前致谢。
标记:
<asp:LinkButton ID="lnkPrompts" runat="server">LinkButton</asp:LinkButton>
<asp:ModalPopupExtender ID="lnkPrompts_ModalPopupExtender" runat="server"
BackgroundCssClass="modalBackground" Enabled="True"
TargetControlID="lnkPrompts" PopupControlID="pnlPromptModal"
OkControlID="pnlPromptModal">
</asp:ModalPopupExtender>
<asp:Panel ID="pnlPromptModal" runat="server" Width="350px" Height="70px"
CssClass="modalPopup" Style="display: none;">
Some text
<div style="">
<asp:Button ID="btnModalPromptOk" runat="server" Text="OK" />
</div>
</asp:Panel>
在服务器端:
protected void btnViewPrompts_Click(object sender, EventArgs e)
{
if (conditionMet)
{
Response.Redirect("IvrPrompts.aspx?Id=" + breakdownView.Id);
}
else
{
//ToDo: Show modaldialogbox
lnkPrompts_ModalPopupExtender.Show(); //This does nothing...
}
}
答案 0 :(得分:0)
好吧,好像它确实有效。唯一的问题是我在Response.Redirect
行后面有一个lnkPrompts_ModalPopupExtender.Show();
,这就是问题所在。该对话框从未显示过。在评论出Redirect之后,它一切正常。
无论如何,抱歉浪费你的时间。在下次尝试新事物时应该更加清醒...
答案 1 :(得分:0)
我按照您描述的方式使用ModalPopupExtender的时间,我已将它们包装在UpdatePanel中。这是让服务器端启动&#34;的唯一方法。像你一样的行动。
答案 2 :(得分:-1)
您需要在客户端使用javascript执行此操作。服务器永远不能在客户端上启动操作,但客户端可以询问服务器是否满足条件并根据该操作采取操作。您希望这样做的方法可能是在按下按钮时执行从客户端到服务器的Ajax后台调用。