日期:2014-05-18  浏览次数:20420 次

弹出窗口如何不刷新父窗口
在后置代码btn_edit事件中.
if(flag2 <1)
{
Page.RegisterStartupScript( " ", " <script> alert( '名称有重复,请重新输入! ');event.returnValue=false; </script> ");
}
用btn_edit.Attributes[ "onclick "]   =   ......更是错误的.
弹出提示窗口时,要刷新父窗口,如何不刷新父窗口?

------解决方案--------------------
你用 if (!IsPostBack) 你是怕数据重新绑定吧?
------解决方案--------------------
使用 AJAX.net
------解决方案--------------------
我这里有一个程序,刚好是实现这个功能的。

首先页面中代码
<script type= "text/javascript " language= "javascript ">
var xmlHttp = null;
function CheckUser()
{
try
{
xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP ");
}
catch(err1)
{
try
{
xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP ");
}
catch(err2)
{
xmlHttp = new XMLHttpRequest();
}
}
var Text1 = document.getElementById( "Text1 ");
var url = "chkuser.aspx?User= " + Text1.value;
xmlHttp.open( "GET ",url,true);
xmlHttp.onreadystatechange = OnHandler;
xmlHttp.send(null);

}
function OnHandler()
{
if(xmlHttp.readyState == 4)
{
var isValid = xmlHttp.responseText;
var exists = isValid.substring(0,1);
if(exist== "1 ")
{
alert( "存在 ");
return;
}
}
}
</script>
<input id= "Text1 " type= "text " onblur= "CheckUser() " /> <label d= "exsits "> </label> <br />

然后建一个chkuser.aspx,其后台代码改为
protected void Page_Load(object sender, EventArgs e)
{
string user = this.Request.QueryString[ "User "];

if (UserExist(user))
{
Response.Write( "1 ");
}
else
{
Response.Write( "0 ");
}

}

private bool UserExist(string username)
{
//这里加入判断的代码
}
就可以了

------解决方案--------------------
弹出窗口的代码在后台中写的,其实在你弹窗口之前就已经开始刷新操作了(即后代代码的运行),
如果实在想要你的效果的话,使用AJAX吧,下个AJAX控件 使用起来很方便的。
------解决方案--------------------
帮你up