朋友,这个问题很简单
这是视图状态在捣鬼,视图状态在每次页面装载之后自动保存你的页面状态到状态袋类中,这样你每次提交页面的时候,自动调用了上次的视图状态,解决办法就是禁用视图状态。
在web或者html控件中都有都有EnableViewState属性,你把他设为False就可以了
或者用<% Page EnableViewState="False" %>可以在整个页面上禁用视图状态。
这是视图状态在捣鬼,视图状态在每次页面装载之后自动保存你的页面状态到状态袋类中,这样你每次提交页面的时候,自动调用了上次的视图状态,解决办法就是禁用视图状态。
在web或者html控件中都有都有EnableViewState属性,你把他设为False就可以了
或者用<% Page EnableViewState="False" %>可以在整个页面上禁用视图状态。
解决方案 »
- 一个好的B/S网站应该考虑那些方面???
- 100万火急,哥这有个数据导出Excel的代码格式是乱的
- ===动态添加删除一行===
- 一个极具挑战性的问题!!!!++++奇怪之谜!~!~!~!
- 把DropDownList的 AutoPostBack="True"设置后,如何根据DropDownlist的变化而使得广西框的内容也发生变化??
- 用SEVER.TRANSFER重定向不成功是什么原因,怎样解决??
- 文本框输入后键入回车后,能引发一指定的按扭单击事件?
- 请问各位:如何在ASP.NET中打开一个现有的或一个新的WORD文档?
- Datagrid中每页显示8行,不足8行,余下用空行补充,如何实现?在线给分!
- 对于一些设置的想法。
- csdn被黑了!!!!!
- 论坛左边的那个数状控件怎么开发?(要求与csdn功能一样)
你在写page_load()的时候如果要是这样写:
void Page_Load()
if (!IsPostBack)
那么if中的语句只在第一次装载页面的时候执行而如果你没有使用if (!IspostBack)那么你的语句在每次提交页面的时候都会执行
IsPostBack属性就是用来干这个的,希望你的问题已经可以解决了。
使用showModalDialog("xxx.aspx?"+Math.random())来打开页面.
to 工兵:对对,我就是在if (!IsPostBack) 里写的SQL查询,但是这一页是从主页面调出来的,只有第一次弹出该页SQL才正确执行,以后再弹出就总是第一次的结果,而每次弹出该页面时都应该调用if (!IsPostBack)内的程序(请问弹出页面是不是就是重新装载页面?用showmodewindow()).我后面的Response.Write("test");Response.End();都写在if (!IsPostBack)的外面,它也不能正常显示,就好像没改页面一样;是不是要把所有控件的EnableViewState属性都设为FALSE,这个属性的缺省状态是什么?
Random RanNum = new Random();
lblFirstRanNum.Text = RanNum.Next( 1, 11 ).ToString();
if (!Page.IsPostBack)
lblSecondRanNum.Text = RanNum.Next( 1, 11 ).ToString();
}</Script><html>
<head><title>IsPostBack_.aspx</title></head>
<body><form Runat="Server">
The first random number is:
<asp:label id="lblFirstRanNum" Runat="Server"/>
<p>
The second random number is:
<asp:label id="lblSecondRanNum" Runat="Server"/>
<p>
<asp:button Text="Click Here!" Runat="Server"/></form></body>
</html>上面的程序在页面中产生两个随机数,第一个每次你提交页面都会产生,而第二个则在if (!Page.IsPostBack)的限制下只灾第一次装载页面时产生,以后就不变了
。
以上的例子如果你再按我说的禁用页面的视图状态,那么第二个随即数在你第二次提交页面时就会消失,因为视图状态袋类中没有保存他而Page_Load因为if (!Page.IsPostBack)的限制没有执行给他附值的语句,所以他就消失了。这两点你一结合你就明白了吧?EnableViewState属性默认的是True.
我的aspx.cs里有这么一句:
if(m_sqlDataReader["state"].ToString().Trim()=="未借")
{
m_sqlDataReader.Close();
Response.Write("<script language='javascript'>");
Response.Write("alert('本书没人借,不能管理:(');");
Response.Write("window.returnValue=false;");
Response.Write("window.close();");
Response.Write("</"+"script>");
return;
}
如果执行到这些语句会生成下面的页面:
<script language='javascript'>alert('本书没人借,不能管理:(');window.returnValue=false;window.close();</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>OfficeAdd</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<LINK href="../../css.css" type="text/css" rel="stylesheet">
<meta http-equiv="Pragma" content="no-cache">
<base target="_parent">
</HEAD>
<body bgColor="activeborder" MS_POSITIONING="FlowLayout">
其中弹出错误信息并关闭窗口的javascript语句在页面的最开始,它在<meta http-equiv="Pragma" content="no-cache">的前面,所以再次调用这一页面时(这一页面在Temporary Internet Files内)还没等读到<meta http-equiv="Pragma" content="no-cache">这句就会执行javascribt程序弹出错误提示并关闭窗口。
不过还是要谢谢各位的回答,小生也获益匪浅.一会儿就结贴