朋友,这个问题很简单
这是视图状态在捣鬼,视图状态在每次页面装载之后自动保存你的页面状态到状态袋类中,这样你每次提交页面的时候,自动调用了上次的视图状态,解决办法就是禁用视图状态。
在web或者html控件中都有都有EnableViewState属性,你把他设为False就可以了
或者用<% Page EnableViewState="False" %>可以在整个页面上禁用视图状态。

解决方案 »

  1.   

    朋友,还有一点
    你在写page_load()的时候如果要是这样写:
    void Page_Load()
      if (!IsPostBack)
          那么if中的语句只在第一次装载页面的时候执行而如果你没有使用if (!IspostBack)那么你的语句在每次提交页面的时候都会执行
    IsPostBack属性就是用来干这个的,希望你的问题已经可以解决了。
      

  2.   

    modalDialog的内容是自动缓存的。
    使用showModalDialog("xxx.aspx?"+Math.random())来打开页面.
      

  3.   

    谢谢各位回答明儿上班试试如果成了咱们马上结帐
    to 工兵:对对,我就是在if (!IsPostBack)  里写的SQL查询,但是这一页是从主页面调出来的,只有第一次弹出该页SQL才正确执行,以后再弹出就总是第一次的结果,而每次弹出该页面时都应该调用if (!IsPostBack)内的程序(请问弹出页面是不是就是重新装载页面?用showmodewindow()).我后面的Response.Write("test");Response.End();都写在if (!IsPostBack)的外面,它也不能正常显示,就好像没改页面一样;是不是要把所有控件的EnableViewState属性都设为FALSE,这个属性的缺省状态是什么?
      

  4.   

    if(!Ispostback)中的语句只在第一次装载页面的时候执行,也就是说你打开ie的时候执行,以后你每次刷新或者返回页面就不执行了,你要每次都执行的话,就删除if(1IspostBack),直接写你的代码。下面是一个例子:<Script language="c#" Runat="Server">void Page_Load() {
      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.
      

  5.   

    原因可能是这个:
    我的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程序弹出错误提示并关闭窗口。
        不过还是要谢谢各位的回答,小生也获益匪浅.一会儿就结贴