在我的代码隐藏文件中,我调用了一个html模式弹出窗口,提示用户输入用户名和密码。 我想在继续之前从调用函数后面的代码中得到一个结果。 我该怎么做呢?现在显示模态形式,并且c#代码继续处理有意义,但它不是我想要的。 注意:模态签收html模式窗体有一个按钮(btnSignoff),它调用函数后面的一些其他代码 谢谢 达莫
代码背后:
SignoffModal.Show();
//Wait for response (this is what i would like to be able to do)
if (result <0)
{
//throw some error
}
else
{
// Do some more work
}
HTML代码:
<!-- Signoff Modal Form -->
<asp:HiddenField ID="SignoffForModal" runat="server" />
<ajaxToolkit:ModalPopupExtender runat="server" ID="SignoffModal" BehaviorID="modalPopupExtenderSignoff"
TargetControlID="SignoffForModal" PopupControlID="popUpPaneSignoff" OkControlID="btnSignoff"
BackgroundCssClass="modalBackground">
</ajaxToolkit:ModalPopupExtender>
<asp:Panel ID="popUpPaneSignoff" runat="server" CssClass="confirm-dialog">
<asp:Label ID="lblUsername" runat="server" Text="Username"></asp:Label>
<br />
<asp:TextBox ID="txtUserName" runat="server" ToolTip="Username" Width="200px"></asp:TextBox>
<br />
<asp:Label ID="lblPassword" runat="server" Text="Password"></asp:Label>
<br />
<asp:TextBox ID="txtPassword" runat="server" ToolTip="Password" TextMode="Password"
Width="200px"></asp:TextBox>
<br />
<br />
<div class="base">
<asp:Button ID="btnSignoff" runat="server" Text="Signoff" />
<asp:LinkButton ID="LinkButton3" runat="server" CssClass="close" OnClientClick="$find('modalPopupExtenderSignoff').hide(); return false;" /></div>
</asp:Panel>
<!-- End Signoff Modal Form -->
答案 0 :(得分:1)
看起来ModalPopupExtender
不是这样设计的。虽然它是模态(阻止用户与页面的其余部分交互),但它不是阻止,意味着代码在调用表单后继续运行。那是因为弹出窗口正在客户端上运行,而代码隐藏运行服务器。这称为callback,因为客户端代码在执行操作时会回调到服务器。
要完成这项工作,您必须在SignoffModal.Show();
之后在CancelControlID
添加ModalPopupExtender
属性,将 <!-- Signoff Modal Form -->
<asp:HiddenField ID="SignoffForModal" runat="server" />
<ajaxToolkit:ModalPopupExtender runat="server" ID="SignoffModal"
BehaviorID="modalPopupExtenderSignoff"
TargetControlID="SignoffForModal"
PopupControlID="popUpPaneSignoff"
OkControlID="btnSignoff"
// points to cancel button action
CancelControlID="btnCancel"
BackgroundCssClass="modalBackground">
之后的逻辑拆分为“确认”部分和“取消”部分到处理取消操作的按钮,然后添加按钮:
<asp:Button ID="btnSignoff" runat="server" Text="Signoff" />
// handles Cancel action...
<asp:Button ID="btnCancel" runat="server" Text="Cancel" />
...
<!-- End Signoff Modal Form -->
...
btnSignoff
在{
// Do some work...
代码隐藏事件处理程序中:
btnCancel
在{
//throw some error...
代码隐藏事件处理程序中:
{{1}}