client
<body onunload="hidden1.value=1;document.forms[0].submit()">
server.cs
a=request["hidden1"]
if a=="1"
saveMethod
<body onunload="hidden1.value=1;document.forms[0].submit()">
server.cs
a=request["hidden1"]
if a=="1"
saveMethod
我用<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运行,可能进程已经被卸载了,有没有解决的办法?
当您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());
}
我将代码改成你上面写的,然后运行。第一次用vs.net运行的时候,能执行成功;我将数据库中的值改回来,再次运行,结果数据库中的值不变;用IE打开时数据也不变。
第一次运行时成功,我想可能是要编译的缘故吧。有没有这种点“X”进行提交的标准实现方法?谢谢。
顺便说一下,我的cpu是P4 2.4,这不会是问题吧?^-^