当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 如何传值在2个页面之间 要求不刷新父页面,并且不能用Querystring传值

ASP.NET
asp.net下用服务器端代码解决浏览器兼容性问题
asp.net 安全的截取指定长度的html或者ubb字符串
asp.net 在线编辑word文档 可保存到服务器
asp.net 提高网站速度及如何利用缓存
asp.net 修改/删除站内目录操作后Session丢失问题
asp.net URL重写简化版 速学URL重写
asp.net EncryptHelper 加密帮助类
asp.net JSONHelper JSON帮助类
C# 调用存储过程简单完整的实例代码
vs2008 安装失败的总结与分享
HttpHandler HttpModule入门篇
ASP.NET(AJAX+JSON)实现对象调用
Asp.net 基于Cookie简易的权限判断
asp.net通过HttpModule自动在Url地址上添加参数
asp.net 字符串、二进制、编码数组转换函数
ASP.NET操作Excel备忘录
记录游客页面访问IP的简易实现代码 (asp.net+txt)
比较简单的将数据信息导入wrod文档方案(C# for word)
增加asp.net应用程序性能的20种方法(简单有效)
ASP.NET 图片防盗链的实现原理分析

ASP.NET 中的 如何传值在2个页面之间 要求不刷新父页面,并且不能用Querystring传值


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 90 ::
收藏到网摘: n/a

通过Cookie,因为它既可以在服务器端对其进行操作,也可在客户端对其进行操作但是缺点是不安全,而且有时客户端会由于安全问题禁用Cookie! 例子:
以下是父页的Html代码
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="main.aspx.vb" Inherits="zero.main"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>main</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script language="javascript" charset="gb2312">
function searchvalue()
{
var sql="select * from companyjob";
SetCookie("SendSql",sql);
var url="child.aspx";
window.open(url,'_blank');
}
function SetCookie(name, value)
{
document.cookie = name + "=" + value;
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout" >
<form id="Form1" method="post" runat="server">
<INPUT id="Hidden1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" type="hidden"
name="Hidden1" runat="server"><INPUT style="Z-INDEX: 102; LEFT: 96px; POSITION: absolute; TOP: 144px" type="button" onclick="searchvalue();"
value="Open" id="Button1" name="Button1">
<asp:Button id="Button2" style="Z-INDEX: 103; LEFT: 256px; POSITION: absolute; TOP: 152px" runat="server"
Text="Button"></asp:Button>
</form>
</body>
</HTML>
child 页[子页]
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="child.aspx.vb" Inherits="zero.child"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>child</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script language =javascript >
function getv()
{
alert(document.forms("Hidden1"));
document.all("Hidden1").value=document.forms("Hidden1");
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout" >
<form id="Form1" method="post" runat="server">
<INPUT style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" type="hidden" id="Hidden1"
name="Hidden1" runat="server"></FONT>
</form>
</body>
</HTML>
.vb文件
If Not IsPostBack Then
'Response.Write(Request.Form("Hidden1"))
Dim cookie As HttpCookie = Request.Cookies("SendSql")
If Not cookie Is Nothing Then
Response.Write(cookie.Value)
End If
End If
2。是思归大哥介绍的方法
在父页中加入一个非runat=server的form表单,用来提交隐藏控件的值到子页
<form method="post" target="_blank" id="form2">
<input type=hidden name="query">
</form>
<script language="javascript">
function searchvalue()
{
var sql="select * from companyjob";
document.all.form2.query.value=sql;
document.all.form2.action="child.aspx";
document.all.form2.submit();
}
</script>
子页的后台代码中 (.vb)
在Page_Load事件中写
Response.Write(Request.Form("query"))