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

|M| 在我的类中 如何判断当前页面的IsPostBack 和 ViewState的值
在我的页面中的Load
我调用com.Tools里面的PageBack()事件如
A.aspx.cs
page_load
{
        com.Tools.PageBack();
}
---------------------------------------
com.Tools
public   static   void   PageBack()
{
        if(!ispageback)         //这里如何调用页面的IsPageBack
        {
        }
        String   count   =   ViewState[ "count "].tostring();   //这里如何调用页面的ViewState
}

Session   是   System.Web.HttpContext.Current.Session   那上面两个要怎么写

谢谢

------解决方案--------------------
ViewState 是受保护的,在工具类你也许可以这么做

Page p = (Page)System.Web.HttpContext.Current.Handler;
...

但你大概应该这么做

A.aspx.cs
page_load
{
com.Tools.PageBack(Page.IsPostBack, Page.ViewState);
}
---------------------------------------
com.Tools
public static void PageBack(bool isPostBack, StateBag ViewState)
{
if(!ispageback) //这里如何调用页面的IsPageBack
{
}
String count = ViewState[ "count "].ToString(); //这里如何调用页面的ViewState
}
------解决方案--------------------
ispageback, you can get from the current handler

Page p=HttpContext.Current.Handler as Page;
p.IsPostBack


for the viewstate,it is protected property of Page, you can get it via reflection.
------解决方案--------------------
楼上两位回答精彩
------解决方案--------------------
学习

钻石。。。
------解决方案--------------------
~比较怪异的设计
------解决方案--------------------
钻石真闪眼睛