应用场景:
控件定义一个属性,如下代码
public int? DimissionID
{
get
{
if (ddlDimission.SelectedValue == Utility.DllShowDefaultValue)
return null;
else
return int.Parse(ddlDimission.SelectedValue);
}
set
{
var li = ddlDimission.Items.FindByValue(value.ToString());
if (li != null)
ddlDimission.SelectedValue = li.Value;
}
}
{
get
{
if (ddlDimission.SelectedValue == Utility.DllShowDefaultValue)
return null;
else
return int.Parse(ddlDimission.SelectedValue);
}
set
{
var li = ddlDimission.Items.FindByValue(value.ToString());
if (li != null)
ddlDimission.SelectedValue = li.Value;
}
}
如果在Page_Load中如下处理数据源,那么定义控件后直接给属性赋值,在页面中是看不到你想要的结果的
if (!IsPostBack)
{
Utility.InitDictionaryBind<DimissionInfo>(ddlDimission, null);
}
{
Utility.InitDictionaryBind<DimissionInfo>(ddlDimission, null);
}
但是在Page_Init中这样调用,就没有问题了。
总结:
自定义属性赋值的过程在Page_Init函数执行后才会执行。
提示:好好理解Page的执行过程。