一个viewstate赋值问题
asp.net 2003下开发
看代码://页面加载
if(!Page.IsPostBack)
{
GetDB(DS,(string)Session["staProID"],mDS);
Show(txtOPFlag.Text,txtTaskID.Text);
}
------------------------
//方法
private void GetDB(StaffDS DS,string proid,ManageDS mDS)
{
gc.GetDataProGantt(DS,proid);//此处,GetDataProGantt方法获取DS,填充
ViewState["DS"] = DS;
ViewState["DSview"] = DS;//此时的ViewState["DSview"]中11条记录
BindDB(DS,mDS);
}
private void Show(string operationflag,string taskid)
{
if(operationflag.Trim().Length != 0 && taskid.Trim().Length != 0)
{
if(operationflag.Equals("browse") || operationflag.Equals("edit"))
{
DA.GetDataProGantt(DS,(string)Session["staProID"],taskid);//GetDataProGantt方法再次填充DS,此时DS中一条记录
ViewState["DSshow"] = DS;//此处的ViewState["DSshow"]中,1条记录
//此处给页面控件赋值,略去
}
}
}
private void ddlPreviousTask_SelectedIndexChanged(object sender, System.EventArgs e)
{
if(ddlPreviousTask.SelectedItem.Value.Equals("-1"))
{
txtprevious.Value = "1900/1/1";
}
else
{
txtprevious.Value = ((DateTime)(ViewState["DSview"] as StaffDS).ProGantt.Select("TaskID = "+ ddlPreviousTask.SelectedItem.Value +"")[0]["EndDate"]).ToString("yyyy/MM/dd");
//跟踪此处的ViewState["DSview"],里面居然是1条记录,而且是在Show方法里获取的那条。这个,让我很不理解。
//在GetDB方法里,已经获取了DS,而且里是11条记录,赋给了ViewState["DSview"]。
//那么,为什么此处的ViewState["DSview"] 是1条记录呢?
//想了很久,跟踪测试了很久,没结果。请假各位,谢谢,谢谢。 }
}
asp.net 2003下开发
看代码://页面加载
if(!Page.IsPostBack)
{
GetDB(DS,(string)Session["staProID"],mDS);
Show(txtOPFlag.Text,txtTaskID.Text);
}
------------------------
//方法
private void GetDB(StaffDS DS,string proid,ManageDS mDS)
{
gc.GetDataProGantt(DS,proid);//此处,GetDataProGantt方法获取DS,填充
ViewState["DS"] = DS;
ViewState["DSview"] = DS;//此时的ViewState["DSview"]中11条记录
BindDB(DS,mDS);
}
private void Show(string operationflag,string taskid)
{
if(operationflag.Trim().Length != 0 && taskid.Trim().Length != 0)
{
if(operationflag.Equals("browse") || operationflag.Equals("edit"))
{
DA.GetDataProGantt(DS,(string)Session["staProID"],taskid);//GetDataProGantt方法再次填充DS,此时DS中一条记录
ViewState["DSshow"] = DS;//此处的ViewState["DSshow"]中,1条记录
//此处给页面控件赋值,略去
}
}
}
private void ddlPreviousTask_SelectedIndexChanged(object sender, System.EventArgs e)
{
if(ddlPreviousTask.SelectedItem.Value.Equals("-1"))
{
txtprevious.Value = "1900/1/1";
}
else
{
txtprevious.Value = ((DateTime)(ViewState["DSview"] as StaffDS).ProGantt.Select("TaskID = "+ ddlPreviousTask.SelectedItem.Value +"")[0]["EndDate"]).ToString("yyyy/MM/dd");
//跟踪此处的ViewState["DSview"],里面居然是1条记录,而且是在Show方法里获取的那条。这个,让我很不理解。
//在GetDB方法里,已经获取了DS,而且里是11条记录,赋给了ViewState["DSview"]。
//那么,为什么此处的ViewState["DSview"] 是1条记录呢?
//想了很久,跟踪测试了很久,没结果。请假各位,谢谢,谢谢。 }
}
对,就是这个地方
让我想不明白
我第一次获得了DS之后,里面是11条记录,
然后将DS给了ViewState["DSview"],
这之后,只要页面不关闭
那么ViewState["DSview"]里,是不是就该是11条记录呢?
因为赋值是在页面首次加载时候才做的呀
所以应该跟viewstate能不能存一张表有关系,我觉得viewstate不能存储一张表!
if(!Page.IsPostBack)
...................
...................
试试!!
那么我还想用到ViewState["DSview"]和ViewState["DSshow"]
有什么办法?
好的
不知道有没有更好的办法了感谢天行健
前两天还看你了推荐的
【oj每周推荐】(算法)各位乘积 [推荐] [.NET技术][C#]
呵呵。。结贴