为什么会弹出Windows unknown error对话框
哪位大侠帮我看看下面这个问题:
前台:
<%@ Page Language= "C# " AutoEventWireup= "true " CodeFile= "Test.aspx.cs " Inherits= "Test " %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns= "http://www.w3.org/1999/xhtml " >
<head runat= "server ">
<title> Untitled Page </title>
</head>
<body>
<form id= "form1 " runat= "server ">
<div>
<atlas:ScriptManager ID= "ScriptManager1 " runat= "server " EnablePartialRendering= "True ">
</atlas:ScriptManager>
</div>
<atlas:UpdatePanel ID= "UpdatePanel1 " runat= "server ">
<ContentTemplate>
<asp:TextBox ID= "TextBox1 " runat= "server "> </asp:TextBox> <br />
<br />
<asp:Button ID= "Button1 " runat= "server " OnClick= "Button1_Click " Text= "Button " />
</ContentTemplate>
</atlas:UpdatePanel>
</form>
</body>
</html>
后台:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void Button1_Click(object sender, EventArgs e)
{
TextBox1.Text = "Testing ";
Response.Write( " <script language= 'javascript '> alert( 'For only test '); </script> ");
}
}
运行: 弹出 Windows unknown error对话框
我用的是IE 7.0
[解决办法]
你的问题出在ScriptManager的EnablePartialRendering属性上,我不太懂这个,将这个属性的值设置为False就可以了,我的理解是如果将该属性值设置为True,那么将重绘UpdatePanel里面的内容,而你的信息框不属于UpdatePanel,就出现错误,个人推测的,不知道对不对,请大家不要笑我,下面是找到关于EnablePartialRendering的资料:
EnablePartialRendering 属性决定是否启用局部重绘的模式。
传统的 Post Back 模式页面,在用户 submit 时会重绘整个页面,并导致浏览器显式的闪烁。而在基于 AJAX 技术的 Altas 框架中,可以通过 UpdatePanel 标签指定需要重绘的局部。这样一来页面在处理请求时,会首先根据 ScriptManager.IsInPartialRenderingMode 属性判断是否在重绘模式中。如果在重绘模式,则仅仅将需要重绘的 UpdatePanel 内容,返回给客户端浏览器,并由 Altas 自动进行内容的更新。通过这种模式,使用者可以在对代码几乎无需修改的情况下,直接享受到 AJAX 带来的客户端用户体验的提升。
[解决办法]
this.ClientScript.RegisterStartupScript(this.GetType(), "ok ", "alert( 'For only test '); ", true);
用这个就可以了