我在Page的viewstate中存储了一个对象.现在,当我在usercontrol上访问相同的viewsate对象时,它显示为null.我甚至尝试在usercontrol和page中创建具有相同名称的相同viewstate.Both拥有不同的值.
我知道viewstate是受保护的属性.这个东西如何在上面的场景中实现,或者是否有任何其他原因导致这种行为.
编辑:
Usercontrol在页面标记中.我没有动态加载它.
我有一个页面EditFacilityworkType.aspx.在页面上,我有一个usercontrol FacilityWorkTypeDetails.aspx(FacilityWorkTypeDetails1).在这个usercontrol里面我有一个用户控件Workflow.aspx(Workflow1)
Page的Page_Load()我正在页面的page_load()上检索workflowdetails.
FacilityWorktype facilityWorkType = facilityDetails.GetFacilityWorktypeDetail(SessionHelper.FacilityWorkTypeID);
ViewState["WorkFlow"] = facilityWorkType.FacilityWorkTypeWorkFlow
Run Code Online (Sandbox Code Playgroud)
在usercontrol FacilityWorkTypeDetails.aspx中.我有一个房产
public FacilityWorktype FacilityWorkTypeDetails
{
get
{
#region Fill FacilityWorktype
return GetEntityFromControl();
#endregion
}
set
{
PopulateControls(value);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我在页面的页面加载中设置此属性
FacilityWorkTypeDetails1.FacilityWorkTypeDetails = facilityWorkType;
Run Code Online (Sandbox Code Playgroud)
在Workflow.aspx里面,我有一个属性
/// <summary>
/// Property to fill entity object from controls on this page
/// </summary>
public WorkFlow WorkFlowDetails
{
get
{
return GetEntityFromControls();
}
set
{
BindTranscriptionMethodDDL(ddlTranscMethod);
PopulateControls(value);
}
}
Run Code Online (Sandbox Code Playgroud)
现在是FacilityWorkTypeDetails1的PopulateControls(),我正在设置workflow1的属性
private void PopulateControls(FacilityWorktype value){
Workflow1.WorkFlowDetails = value.FacilityWorkTypeWorkFlow;
}
Run Code Online (Sandbox Code Playgroud)
现在当我从中检索值时
private …Run Code Online (Sandbox Code Playgroud) asp.net ×1