C# 停止ModalPopup扩展器以弹出

C# 停止ModalPopup扩展器以弹出,c#,javascript,.net,ajax,ajaxcontroltoolkit,C#,Javascript,.net,Ajax,Ajaxcontroltoolkit,我有一个模式的弹出式扩展器,点击按钮就会触发。。。现在不管onclientclick函数返回值true/false,它总是弹出。我需要停止模态在返回false时激发,停止模态在返回true时激发..如何做到这一点 请查找以下代码: <div style="text-align:center;" runat="server" id="pnlButton"> <asp:Button CssClass="button" ID="btnBack" runa

我有一个模式的弹出式扩展器,点击按钮就会触发。。。现在不管onclientclick函数返回值true/false,它总是弹出。我需要停止模态在返回false时激发,停止模态在返回true时激发..如何做到这一点

请查找以下代码:

<div style="text-align:center;" runat="server" id="pnlButton">          
    <asp:Button  CssClass="button" ID="btnBack" runat="server" Text="Back" 
        Width="120px" onclick="btnBack_Click" UseSubmitBehavior="false" />
    &nbsp;
    <asp:Button  CssClass="button" ID="btnCancel" runat="server" 
            Text="Cancel Request" Width="130px" onclick="btnCancel_Click" onClientClick="Validate();" />
</div>
<div style="text-align:center;">
<asp:Button  CssClass="button" ID="btnDone" Visible="false" runat="server" 
        Text="Done" Width="110px" onclick="btnDone_Click"   />
</div>

<ajaxToolkit:ConfirmButtonExtender ID="cbe" runat="server"
TargetControlID="btnCancel"
DisplayModalPopupID="ModalPopupExtender1"
ConfirmText="Are you sure you want to click this?" />
<ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="btnCancel"
PopupControlID="PNL" OkControlID="ButtonOk" CancelControlID="ButtonCancel" BackgroundCssClass="modalBackground" />
<asp:Panel ID="PNL" runat="server" Style="display: none; width: 400px; background-color: White;
    border-width: 2px; border-color: Black; border-style: solid; padding: 20px;">
    <h2>Are you sure you want to cancel this request?</h2>
    <br />
    <br />
    <div style="text-align: right;">
        <asp:Button ID="ButtonOk" runat="server" Text="Yes" CssClass="button" />&nbsp;&nbsp;
        <asp:Button ID="ButtonCancel" runat="server" Text="No" CssClass="button" />
    </div>
</asp:Panel>

您确定要取消此请求吗?



将代码更改为以下内容

 onClientClick="return Validate();"

您可以从javascript打开弹出窗口

function ValidateAndOpen(){
if(Validate()){
var modalDialog = $find("ModalPopupExtender1"); 
// get reference to modal popup using the AJAX api $find() function    
  if (modalDialog != null) {
    modalDialog.show();
  }    
 }
return false;
}
必须在ModalPopupXtender上设置ClientMode=“Static”
并设置OnClientClick=“return ValidateAndOpen();”

将此脚本放到表单上:

 function pageLoad(sender, args) {
      if (args.get_isPartialLoad() === false) {
           $find("<%= ModalPopupExtender1.ClientID %>").add_showing(function (sender, args) { args.set_cancel(Validate()); });
      }
 }
函数页面加载(发送方,参数){
if(args.get_isPartialLoad()==false){
$find(“”).add_显示函数(sender,args){args.set_cancel(Validate());};
}
}

我没有看到OnClient在任何地方单击。似乎javascript确认也更容易实现。在什么情况下您不想验证它?当javascript验证在页面中启动时。。我不需要启动弹出窗口。否则我需要启动弹出窗口。您想使用ASP.NET验证还是
Validate
是您的客户端方法?我尝试过它不起作用。。。仍然会在返回true和false时激发编译错误描述:编译服务此请求所需的资源时出错。请查看以下特定错误详细信息并适当修改源代码。编译器错误消息:CS0120:非静态字段、方法或属性'System.Web.UI.Control.ClientID.get'第34行:函数pageLoad(sender,args){第35行:if(args.get_isPartialLoad()==false){第36行:$find(“”)。add_显示(函数(sender,args){args.set_cancel(ValidateControl());});第37行:}第38行:}@petengineer,我已经修复了脚本