client
<body onunload="hidden1.value=1;document.forms[0].submit()">
server.cs
a=request["hidden1"]
if a=="1"
 saveMethod

解决方案 »

  1.   

    谢谢gjinlin(阿林),还要请教:
    我用<body onunload="document.all.hidden1.value='1';document.forms[0].submit();alert('Saved')">能执行save()方法,
    但用<body onunload="document.all.hidden1.value='1';document.forms[0].submit()">运行时不执行save()方法就退出了,确切的说是submit()都没执行,因为我跟踪不到Page_Load运行,可能进程已经被卸载了,有没有解决的办法?
      

  2.   

    可以执行。
    当您X了IE时,vs.net就同时把aspnet_wp进程分离出去。而电脑执行得非常快,根本没时间让aspnet_wp来执行回发(submit)回来的代码。像我的电脑很慢(c500)可以看到代码回来到
    执行到!postback,过一会才从aspnet_wp分离出来,后边的代码就无法执行。所以,如果您把代码编译后,新开一个IE,而不是在.net的环境里执行,代码便可执行 。
    在page_load加入以下代码看看,表里的数据是否已被更新了。谢谢
    if ( Hidden1.Value=="1")
    {
    string strSql;
    strSql = "Data Source=.;Initial Catalog=Northwind;User Id=sa;Password=;";
    SqlConnection conn = new SqlConnection(strSql);
    conn.Open();
    SqlCommand cmd=new SqlCommand ("UPDATE dbo.Employees SET LastName = 'abc' WHERE (EmployeeID = 1)",conn);
    int i=cmd.ExecuteNonQuery ();
    Response.Write(i.ToString());
    }
      

  3.   

    非常感谢你,gjinlin(阿林),不过还是无法实现。
    我将代码改成你上面写的,然后运行。第一次用vs.net运行的时候,能执行成功;我将数据库中的值改回来,再次运行,结果数据库中的值不变;用IE打开时数据也不变。
    第一次运行时成功,我想可能是要编译的缘故吧。有没有这种点“X”进行提交的标准实现方法?谢谢。
    顺便说一下,我的cpu是P4 2.4,这不会是问题吧?^-^