获取对象的属性值的方法 获取源页的公共属性值
获取源页的公共属性值
重点总结
在ASP NET中 要想从目标页获取源页的数据信息 可以使用两种方法
一是通过获取源页的控件进而获取控件的属性值
二是直接通过获取源页公开的公共属性来获取源页数据
本示例代码则演示如何通过获取源页的公共属性达到获取源页数据的目的
为了达到这样的目的 必须要将Page PreviousPage属性引用的源页进行强类型的转换
这可以通过为目标页添加@PreviousPageType指令 或者@Reference指令

一 @PreviousPageType
示例代码
本示例代码中 源页中包含一个文本框控件 以便用户可以输入自己的姓名 并且源页也包含一个名为UserName的公共属性 此属性返回的就是用户在文本框控件中输入的用户名
源页的代码如下
<%@ Page Language= C# AutoEventWireup= true CodeFile= SourcePage aspx cs Inherits= SourcePage %>
<!DOCTYPE PUBLIC //W C//DTD XHTML Transitional//EN transitional dtd >
< xmlns= >
<head runat= server >
</head>
<body>
<form id= form runat= server >
<div>
<asp:TextBox ID= UserNameTextBox runat= server ></asp:TextBox>
<br />
<asp:Button ID= SubmitButton runat= server Text= 提交到目标页
PostBackUrl= ~/DestinationPage aspx />
</div>
</form>
</body>
</>
源页中的UserName公共属性的定义如下
/// <summary>
/// 用来获取用户在页面文本框中输入的用户名
/// </summary>
public string UserName
{
get { return this UserNameTextBox Text; }
}
接着应该在目标页中添加@PreviousPageType指令
<%@ PreviousPageType VirtualPath= ~/SourcePage aspx %>
此指令有两个属性 除了VirtualPath以外 还有一个名叫TypeName 这两个属性只要设置其中一个就可以了
经过上面这些定义之后 就在目标页上通过类似下面的代码来访问源页的UserName公共属性了
if (this PreviousPage != null)
{
this Response Write(this PreviousPage UserName);
}
是不是相当的简单呢?这是@PreviousPageType指令相对于@Reference的一个优势 它自动就对Page PreviousPage进行了强类型的转换
二 @Reference
除了@PreviousPageType指令以外 另外一个可用的指令就是@Reference
此指令同样是添加在目标页中 而不是源页中 可不要搞错了
示例代码以@PreviousPageType的那个代码为基础进行修改
首先删除目标页上的@PreviousPageType指令 然后添加@Reference指令
<%@ Reference VirtualPath= ~/SourcePage aspx %>
只要做这些修改就可以了 最后就可以使用类似下面的代码在目标页中访问源页的公共属性了
if (this PreviousPage != null)
{
SourcePage PreviousPage = (SourcePage)this PreviousPage;
this Response Write(PreviousPage UserName);
}
lishixinzhi/Article/program/net/201311/12599