日期:2014-05-17  浏览次数:20478 次

使用了ajax的updatepannel,原来的 response.write不好用,如何解决
C# WEB vs
     之前的网页里控件选择等总是不断刷新整个页面。
    使用了vs里的ajax extension 里的updatepannel 来成功实现了网页的异步刷新。
  但是问题出来了:
      使用了updatepannel、scriptmananger等以后,原来好用的response.write就不行了,调试的时候报错:

Microsoft JScript 运行时错误: Sys.WebForms.PageRequestManagerParserErrorException: 无法分析从服务器收到的消息。之所以出现此错误,常见的原因是: 在通过调用 Response.Write() 修改响应时,将启用响应筛选器、HttpModule 或服务器跟踪。
详细信息: 分析附近的“Response.Write("<Script>alert('预测数据不完整,请重新选择数据!')</Script>");”时出错。


   论坛里也看到一个大神说这两种东西一个刷新整个页面,一个不刷新、所以冲突。
  求一个解决办法,  即是可以在这种状况下弹出提示框的方法。
ajax scriptmanager response.write

------解决方案--------------------
public static void SetMessage(Page page,string messge) {
            ScriptManager.RegisterClientScriptBlock(page, page.GetType(), "msg", "alert('"+messge+"!');", true);
        }
------解决方案--------------------

    /// <summary>
    /// XXXXXXX
    /// </summary>
    /// <param name="str"></param>
    protected void SysInfo(string str)
    {
        ScriptManager.RegisterClientScriptBlock(UpdatePanel1, UpdatePanel1.GetType(), "SysInfo", str, true);
    }



调用



 SysInfo("window.alert('操作失败!");
 SysInfo("window.alert('操作成功!");