我想实现:一个普通的按钮(不是在DATALIST 或是 DATAGRID中),在执行其按下事件的代码前,弹出一个对话框让用户确认是否继续执行。
我是这样写的:Page_Load()中, bDelAll.Attributes.Add("onClick", "if(confirm (\"确定要删除所有记事信息吗?\")==true){MakeRequest('note_delAll.aspx');GoPage();return true;}else{return false;} ;");
------------------------------------
bDelAll是一个图形按钮;我在上面的代码里,意图当对话框点确定的时候,运行2个JS函数:
1、MakeRequest('note_delAll.aspx');
2、GoPage();
实际上运行时只运行了第一个,为什么?我是不得以才用MakeRequest()这个自定义的JS函数去隐性的执行 note_delAll.aspx 以达到删除所有记录的效果。如何可以让点击对话框的确认后运行CS文件中定义的函数呢?

解决方案 »

  1.   

    MakeRequest('note_delAll.aspx');
    如何写的
      

  2.   

    <script language="javascript">
    //--发送请求-------------------------------------------------------------//
        function MakeRequest(url) 
    {        http_request = false;        //创建新的 XMLHttpRequest 对象
            if (window.XMLHttpRequest) 
    { // Mozilla, Safari,...
                http_request = new XMLHttpRequest();
                if (http_request.overrideMimeType) {
                    http_request.overrideMimeType('text/xml');
                }
            } 
    else 
        if (window.ActiveXObject) 
    { // IE
    try 
    {
    http_request = new ActiveXObject("Msxml2.XMLHTTP");

    catch (e) 
    {
    try {
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e) 
    {}
                     }
            }        if (!http_request) 
    {
                alert('AJAX:(Cannot create an XMLHTTP instance');
                return false;
            }

            http_request.onreadystatechange = ShowContents;
            http_request.open('POST', url, true);
            http_request.send(null);
            
            //alert('AJAX:(Test!');    }
        
         //--显示响应的内容-------------------------------------------------------------//
        function ShowContents() 
    {        if (http_request.readyState == 4)  //信息已经返回,可以开始处理
    {
        //alert(http_request.status)
                if (http_request.status == 200)  //服务器返回200说明页面正常
    {
        //得到字符格式的内容
                    //alert(http_request.responseText);

    //得到XML格式的内容
    var DomXml = new  ActiveXObject("MSXML.DOMDocument");
    DomXml.loadXML(http_request.responseText);
     
        //显示XML的内容
    //alert(http_request.responseText);
    //alert(root_node.length)
    pWuye.innerHTML = DomXml.getElementsByTagName("pWuye").item(0).text;
    pShui.innerHTML = DomXml.getElementsByTagName("pShui").item(0).text;
    pDian.innerHTML = DomXml.getElementsByTagName("pDian").item(0).text;
    //pMeiqi.innerHTML = DomXml.getElementsByTagName("pMeiqi").item(0).text;
    pNuanqi.innerHTML = DomXml.getElementsByTagName("pNuanqi").item(0).text;
    pFangzu.innerHTML = DomXml.getElementsByTagName("pFangzu").item(0).text;
                 } else {
                    alert('There was a problem with the request.');
                }
            }    }
        
        function GoPage()
        {
            window.location = 'note_list.aspx';
        }
        
    </script>
      

  3.   

    在bDelAll.Attributes.Add("onClick", "if(confirm (\"确定要删除所有记事信息吗?\")==true){MakeRequest('note_delAll.aspx');GoPage();return true;}else{return false;} ;");
    这里
    把GoPage()用window.location = 'note_list.aspx';替换掉
      

  4.   

    会不会跟你MakeRequest('note_delAll.aspx');中返回false有关? 你可以把两个函数合并成一个函数。
      

  5.   

    页面上放个
    <input type='button value='确定' onclick=" if(confirm('确定要删除所有记事信息吗')){MakeRequest('note_delAll.aspx');GoPage();Fomr1.btnDelAll.click()}">另外bDelAll隐藏掉
    <asp:Button id="bDelAll" style="display:none"........
      

  6.   

    因为你在MakeRequest的代码太多了,并且还用异步方式连接url很多地方都可以导致 返回一个true给按惯.