在项目中,很多时候我们需要知道作业现在的操作状态,比如是作业现在是处于新增状态,还是修改状态,或者是审核状态,以下是本人在项目中的一点小经验。
所有的作业都会也应该继承同一个顶级基类,不同当前作业是不是直接继承顶级基类,反正应该是基类派生而来。
现在我们所要作的操作状态,就可以在基类中完成。
在基类中新建一个页面状态的属性,如下:
protected FormeState FormOperateState
{
get
{
object o = ViewState["FormOperateState"];
if (o == null)
{
ViewState["FormOperateState"] = FormeState.Add;
}
return ViewState["FormOperateState"] as FormeState;
}
set { ViewState["FormOperateState"] = value; }
}
其中FormeState为页面状态的枚举:
public enum FormeState
{
Add,
Modify
}
在基类的IsPostBack中获取Url中参数FormOperateState的值,这需要我们在Url参数中传递正确的FormOperateState值,比如用户是点击新增进入到该作业的,FormOperateState=Add,如果是点击修改进入到该作业的,那么FormOperateState=Modify
if (IsPostBack)
{
if (!String.IsNullOrEmpty(Request.QueryString["FormOperateState"]))
{
FormOperateState = Enum.Parse(typeof(FormeState), Request.QueryString["FormOperateState"], true);
}
}
这样子我们就可以在页面加载时初始化作业状态了。
因为我们使用了ViewState存储,所以在作业的任何时候都可以很方便的更改操作状态。比如Url中参数FormOperateState的值传进来的Add状态,但我们新增作业并保存后,就需要将操作更改为Modify状态了,那么在保存方法后紧跟FormOperateState=FormeState.Modify就OK了。
以上代码只是表现本人的思路,并未经过测试。具体使用中,则需要自己细细的调试了。"