作者ganymade (呀)
看板Web_Design
标题Re: [问题] ASP.NET 的笨问题..ViewState 到底有什 …
时间Thu Aug 31 16:30:06 2006
※ 引述《jimshih (传说中的果汁学长)》之铭言:
: 我在A网页, 按下一个按钮後
: 新增一个 ViewState 变数: ViewState.Add("DateText",tbxDateText);
: 以及一个 Session 变数: Session.Add("Repeat",true);
: 然後, 重导回自己: Response.Redirect (Request.Url.AbsoluteUri,true);
: 然後在 Page_Load 里去判断...
: if (!this.IsPostBack)
: {
: if (Session["Repeat"] != null)
: {
: Session.Remove("Repeat");
: tbxDateText.Text = ViewState["DateText"].ToString();
: Page.RegisterScriptBlock("Repeat","<script language=''...");
: }
: }
: 结果得到, ViewState["DateText"] = null 的结果..
: 可是我明明在按下按钮时有设值给他了呀....
: 奇怪, 如果他只能活在一次的Page_Load执行绪里的话
: 那我用全域变数 public string dateText 来给值, 抓值就好了
: 那 ViewState 到底能拿来干嘛?
: "装高级" 用的吗? 好让人看到程式码觉得这个设计师很厉害,
: 写的东西人家看不懂 (其实用全域变数就可以了??)
你误会ViewState的用途了
ViewState就像上一篇大大po的文章写的
都是要用来保存页面上的资讯的
不然Postback回来 系统怎麽知道你页面上有哪些控制项
还有这些控制项的值
而ViewState的范围只现在该页面
所以你用Response.Redirect等於是离开了这页面
重新发Request要求浏览该页面
当然你设定的ViewState就不会出现在新的页面上
--
我的技术部落格
-- Derek.NET--
http://blog.xuite.net/cct0201/derek
技术 / 技巧 / 管理 / 心得
欢迎浏览‧欢迎讨论‧欢迎指教
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.1.178
※ 编辑: ganymade 来自: 220.132.1.178 (08/31 16:38)