一个注册信息页面如何把它的信息通过公共属性传递给其他页面

Liuning19891218 2010-09-18 08:56:19
具体题目在这里:
1. 首先添加Survey.aspx页面,用于收集用户基本信息和用户最后一次旅行以及将要旅行日期、骑自行车的能力(单选项,包括:初学者、有一定经验和专家)、经验(单选项,包括:仅在公路骑驶、在森林防火带骑驶、单行道骑驶、山地骑驶和赢得山地竞赛)、目标(多选项,包括:得到更多公路自行车骑驶经验、得到更多山地自行车骑驶经验、升级我的自行车和得到最新的配件)和联系方式(单选项,包括:不要给我发送销售信息、仅发送来自Adventure Works的销售消息和发送我感兴趣的任何销售信息)等相关信息。需要使用的控件包括 TextBox、Calendar、RadioButton、CheckBox和Button等。要求在该页面类中添加公共属性,公开上述信息,以便在跨页提交中通过强名称引用。
2. 然后添加SurveyReceipt.aspx页面,用于显示前者收集到的信息。在该页面中首先添加@PreviousPageType指令,设置跨页提交的父页,然后在页面上添加Label控件,并在Page_Load收集方法中通过强名称方式访问Survey页中收集到的信息,并输出到Label控件的Text属性上。
...全文
137 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
majic2008 2010-09-20
  • 打赏
  • 举报
回复
通常,如果你cross-page postback之后想访问PreviousPage,你可以用PreviousPage得到之前一页的ref,然后再findcontrol。但系如果你想访问前页codebehind里面的public property呢?那么这种方法就失效了,因为默认的page control没有哪个属性。此时你可以通过设置这个PreviousPageType,取得一个specified的前页,然后直接访问那个public属性。其中PreviousPageType的VirtualPath可以用来指定具体的前页文件名。这样只有当postback是来自这个文件的时候才可以访问那个属性。如果你有一堆页inherit from一个BasePage的话,且属性包含在base里,那么就可以通过设置TypeName,这样就能使上面的访问可以对应多个前页了
majic2008 2010-09-20
  • 打赏
  • 举报
回复
@PreviousPageType属性(Attributes)
TypeName:指定前置页面的类型名称。
VirtualPath:指定前置页面的虚拟路径。
这两个属性不能同时出现,否则就白填,指令无效。

大多数时候应该都用不到这个指令,因为当前页面的PreviousPage的值并不取决于这个指令,而是你调用这个页面的方式,只有跨页面的提交和在服务器端调用Transfer时才会保存前置页面的实例.Page类提供IsPostBack,IsCallback,IsCrossPagePostBack三个属性来判断用户是如何来判断当前页面是如何被调用的。
ashou706 2010-09-19
  • 打赏
  • 举报
回复
Session
Liuning19891218 2010-09-19
  • 打赏
  • 举报
回复
能不能按照题目要求给出解决方案呀,我就是想通过添加公共属性来解决。
majic2008 2010-09-19
  • 打赏
  • 举报
回复
把收集的信息放到HASHTABLE中,然后放到SESSION里取出来
Liuning19891218 2010-09-19
  • 打赏
  • 举报
回复
怎么就是没人啊,我自己顶顶顶
Liuning19891218 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hudelan 的回复:]
别使用session,用cookies
[/Quote]cookies现在还没看,想先把题目的那个弄清楚,谢谢大家的帮忙啊!
Liuning19891218 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 majic2008 的回复:]
hashtable ht=new hashtable();
ht.add("jingyan",value);
ht.add("datetime",日期value);
Session["hashtable"]=ht;

下一个页面取出来
[/Quote]我不会用session,希望你可以按照题目要求的那样帮我想想
Liuning19891218 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jianshao810 的回复:]
有。。你Survey.aspx写一个public 的属性。。PreviousPage 转为强类型就可以找到
[/Quote]比如我写个属性 public string name
{get{return textbox1.Text} };然后我在surveyReciept页加一句<%@ PreviousPageType VirtualPath="~/Survey.aspx" %>,但是还是无法调用Survey的name属性
hudelan 2010-09-19
  • 打赏
  • 举报
回复
别使用session,用cookies
jianshao810 2010-09-19
  • 打赏
  • 举报
回复
有。。你Survey.aspx写一个public 的属性。。PreviousPage 转为强类型就可以找到
majic2008 2010-09-19
  • 打赏
  • 举报
回复
hashtable ht=new hashtable();
ht.add("jingyan",value);
ht.add("datetime",日期value);
Session["hashtable"]=ht;

下一个页面取出来
Liuning19891218 2010-09-19
  • 打赏
  • 举报
回复
拜托来个好心人啊
Liuning19891218 2010-09-19
  • 打赏
  • 举报
回复
为什么就没有人详细解答呀,我是个菜鸟
Liuning19891218 2010-09-18
  • 打赏
  • 举报
回复
谁来帮帮我啊,搞了一天了。虽然知道可以用PreviousPage.FindControl来完成,但是没有用到要求的公共属性。哪位好心人来救火?

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧