日期:2014-05-18  浏览次数:20437 次

使用ViewState如何传值
比如说有两个页面one.aspx各two.aspx,如何在one页面给ViewState赋值在two页面取出ViewState的值呢?

在提一个问题:
页面传值
ession(viewstate)简单,但易丢失

application 全局

cookie 简单,但可能不支持,可能被伪造

input type="hidden" 简单,可能被伪造

url参数简单,显示于地址栏,长度有限

数据库稳定,安全,但性能相对弱

貌似都不好那我该使用哪个呢?

------解决方案--------------------
就通过url参数啊,最方便了
------解决方案--------------------
ViewStat是基于客户端的状态管理

页面传值可以考虑Session

如果不想Session


Post...
------解决方案--------------------

viewstate只是页面级的。。。

还是用URL传值比较好。。。
------解决方案--------------------
ViewState跨不了页面吧
//利用PostBackUrl属性和page的PreviousPage属性结合实现页面间传数据
//当前页
<asp:Button ID="Button1" runat="server" Text="Button" 
PostBackUrl="~/Default3.aspx" CommandArgument="需要传递到数据" />
//设置PostBackUrl属性,可以把要传递的数据付给

Default3.aspx页中
Button btn = this.PreviousPage.FindControl("Button1") as Button;
 Response.Write(btn.CommandArgument);//输出需要传递到数据


或者url传递,



------解决方案--------------------
最好用Session,要不然用缓存也可以,viewstate是间页面传值的,你用不了
------解决方案--------------------
ViewData不行的...
用session吧,cookie不保险
------解决方案--------------------
ViewState是页面的临时值,不能进行两个页面的传值。
如果进行两个页面跳转的传值可以用参数,或者session或者用HiddenField隐藏域
------解决方案--------------------
为什么要把viewstate传给其他的页面?
------解决方案--------------------
参考,使用PostBackUrl和PreviousPage,但不用FindControl:http://www.cnblogs.com/insus/articles/2050832.html