一個糾結很久的問題,不知道是瀏覽器兼容性的問題,還是IE 9.0 不支持...
我做個報表導出的功能,實現導出時提示是否下載到客戶端...利用MessageBox.Show()實現了,在Xp+IE 6 的環境下成功運行...無異常,我放到自己的電腦 Win7 +IE 9.0 的環境就不彈出來了...直接跳過去了..不就解決,只看回覆率

解决方案 »

  1.   

     ScriptManager.RegisterStartupScript(this, GetType(), "", "alert('发送成功')", true);
    这个和C#里的MessageBox.Show("发送成功")是一样的功效
      

  2.   

    ScriptManager.RegisterStartupScript(this, GetType(), "", "alert('')", true);
      

  3.   

    MessageBox.Show()?
     这是winf里面的吧 web里面哪里这个对象
      

  4.   


      string StrScript;
      string _Msg="XXXX";
                StrScript = ("<script language=javascript>");
                StrScript += "var retValue=window.confirm('" + _Msg + "');
                StrScript += ("</script>");
                System.Web.HttpContext.Current.Response.Write(StrScript);
      

  5.   


    page.ClientScript.RegisterStartupScript(page.GetType(), " ", "<script language='javascript'>alert('XXXXX');</script>");
      

  6.   

    謝謝樓上   還是發段代碼吧  這樣你們不至於理解錯誤//此處省略WebForm的引用
    using System.Windows.Forms;//省略大部分代碼,直接出主要代碼
    //判斷是否要導出,如果是執行下載頁面,如果否跳過執行後面代碼
    if(MessageBox.Show(null,"Download file to the local?","Message:",MessageBoxButton.YesNo,MessageBoxIcon.Question,MessageBoxOptions.ServiceNotification).Equals(DialogResult.YES))
    {
         Response.Rediract("DownFileLode.aspx?filename="+fileroot);//此段代碼是下載處理代碼  忽略
    }//後面代碼無異常
      

  7.   

    win7 ie9下 直接略过 没有弹出messagebox,么?
      

  8.   

    刚刚测试 win7 +ie9  nf 4.0 可以显示
      

  9.   

      Winform中调用MessageBox.Show的有时候会引起主线程挂起.
     个人想法,可能是IE6是调用系统控件,比如遮不住的select, 所有MessageBox.Show 可以正常运行。
    但IE8,9 改进了,不是调用的系统组件,所有 可能有问题。
    但一般来说 都用js 的 confirm 。不用MessageBox.Show。都web, 还要引用
    using System.Windows.Forms; 感觉是不是搞复杂了。
      

  10.   

    LZ在这里我得提示一下了
    MessageBox是继承自form类
    MessageBox.Show是winform中用来显示提示信息的,如果在asp.net中使用,会显示在服务器端,没意义
    web中使用javascritp:alert
    或者用confirm也可以
      

  11.   

    LZ在这里我得提示一下了
    MessageBox是继承自form类
    MessageBox.Show是winform中用来显示提示信息的,如果在asp.net中使用,会显示在服务器端,没意义
    web中使用javascritp:alert
    或者用confirm也可以
      

  12.   

    求指導  confirm 實現上面代碼部分的功能?我利用confirm 老是出錯...
      

  13.   


    protected void gvRole_RowDataBound1(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Attributes.Add("onmouseover", "a=this.style.backgroundColor;this.style.backgroundColor='#EEEEEE'");
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=a");
                string roleName = ((Label)e.Row.FindControl("Label2")).Text;
                ((Button)e.Row.FindControl("导出按钮的id")).Attributes.Add("onclick", "return confirm('是否确定导出" + roleName + "?')");
            }
        }
      

  14.   

    ((Button)e.Row.FindControl("导出按钮的id")).Attributes.Add("onclick", "return confirm('是否确定导出");可以改成这个((Button)e.Row.FindControl("btnDel")).Attributes.Add("onclick", "if (confirm('是否确定导出" + roleName + "?')) return confirm('...')");
      

  15.   

    ((Button)e.Row.FindControl("导出按钮id")).Attributes.Add("onclick", "if (confirm('是否确定导出" + roleName + "?')) return confirm('...')");
      

  16.   

    在你的页面那里的HTML源码里的<head>标签块里定义一个JS函数//预定义函数,下载用
    //参数你自己随意加减,记住这个函数要在<head>标签块里
    fuction Doingthing(mes,fileName)
    {
       if(confirm(mes))
      {
         //同意,则跳转
         window.location.href="DownFileLode.aspx?filename="+fileName;
      }
      else {}//不同意则
    }//后台调用
    this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MyFuction", "<script type=\"text/javascript\">Doingthing('"+"提示信息"+"','"+"文件名称+"');</script>", false);//上面只是能让你后台调用前台JS//但解决不了楼主的难题,如果我猜得不错,楼主的意思应该是用户在得到弹窗口提示之后,做出选择“是”或“否”,如果是,则跳转页面,如果否,则继续后面的c#代码,固我的这个方案没法实现选择“否”时的展出操作。
    //建议楼主换另一种思路,比如在导出按钮上加上JS代码,如<asp:LinkButton ID="LinkButton1" runat="server"  OnClientClick='return Doingthing(<%# Eval("FileName")%>);'>导出数据</asp:LinkButton>
    fuction Doingthing(fileName)
    {
       if(confirm("下载并导出?"))
      {
         //同意,则跳转
         window.location.href="DownFileLode.aspx?filename="+fileName;
      }
      else {return true;}//不同意则返回真,让控件执行onclick事件
    }
      

  17.   

    希望大家拋棄利用按鈕來實現  因為在這個Button的Click事件中還有其他的處理程序,下載到客戶端只是這其中的小部分而已  因為下載代碼大部分在其他類中來處理的...
      

  18.   

    我也遇到类似的问题,我的做法是
      //执行代码
      //弹出一个DIV。(不用confim 或message) 因:web是单线程执行,所以系统不会等你点确定在执行后面的语句。
      //if(根据DIV上的选择)
           //执行一段逻辑
      // else
          //执行另一段逻辑
       //执行后面的逻辑 
      

  19.   

    我的想法是还是用OnClientClick这个属性,但是可以在外面放一个hideen,点击按钮之后在OnClientClick里写脚本改变hidden的值,但是OnClientClick还是给它返回真,这样按钮时间仍然能执行,而你就是去判断hidden的值了!
      

  20.   

    OnClientClick=javascript:if(confirm('执行?')){hidden.value="**",return true}else{hidden.value="*",return true}
      

  21.   

    那LZ可以考虑第三方控件 比如flexGird 我这就有这个控件 Q453367672
      

  22.   

    謝謝大家  謝謝23樓同學的提醒 根據擬提供的思路我考慮下合併消息處理,完成了Win 7系統的提示,但是Win7 系統一個討厭的問題,xp彈出另存為對話框,win7 沒有 導致文件名變得成為文件路徑...結貼