应用场景:
控件定义一个属性,如下代码
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的执行过程。