WebForm ControlManager 控制項介紹
ControlManager 控制項為所在WebForm中所有顯示控制項自動顯示所設定的後台類的屬性值。它可與任何顯示控制項相關聯。舉一個使用此控制項的樣本:在Web表單上會有很多顯示後台model類屬性的顯示控制項(如TextBox),而為了能夠不用寫很多指派陳述式,可以把ControlManager放到頁面上,在設計時把顯示控制項與後台類通過擴充屬性進行映射設定,然後需要顯示資料的時候,只要把含有資料的model類執行個體傳給ControlManager的Binder 方法UserDataBind,該控制項就會把model類的屬性中的資料自動賦給所對應的所有顯示控制項上.當修改完顯示控制項上的資料後,調用更新資料方法BindDataRefresh,ControlManager會據相應的資料自動更新到背景model類。
ControlManager控制項為Web表單上的多個控制項提供 ControlManager 屬性(功能類似於ToolTip屬性)。例如,如果將一個ControlManager件置於WebForm上,則可以為所有TextBox 或其它顯示控制項擴充出二個屬性“DataSource”和“PropertyName”. 一個用於設定所對應的後台類,一個用於設定所對應的後台類的屬性名稱。
public class ControlManager : System.Web.UI.WebControls.WebControl, IextenderProvider
備忘
ControlManager 類讓您可以通過調用的它方法來自動為WebForm上的所有顯示控制項賦值。
ControlManager類可以替代過多的指派陳述式。
樣本 下面的樣本把ControlManager控制項從工具箱中拖到頁面中,假定後台有一
個包含資料的UserModel類,有屬性UserName,UserAge,UserSex等。同時頁面上有很多TextBox希
望顯示UserModel類的每個屬性值。我們選中頁面上的一個TextBox,在屬性瀏覽器中會找到
“ControlManager1上的DataSource”和“ControlManager1上的PropertyName”兩個擴充屬性,我
們把它們分別設為“UserModel”和“UserName”.如果只綁定一個model類,則DataSource可以不
設定,只設定PropertyName就可以了。其它TextBox的設定與此類似。
private void Page_Load(object sender, System.EventArgs e)
{
// 在此處放置使用者代碼以初始化頁面
if(!IsPostBack)
{
UserModel um = new UserModel();
um.UserName = "王偉";
um.UserAge = "26";
um.UserSex = “男”;
//……
ControlManager1.UserDataBind(um,”UserModel”);
//如果後台只綁定這一個UserModel類,可以不設定DataSource屬性, 則可以這樣調//用 ControlManager1.UserDataBind(um);
} //當第一次顯示該頁面的時候,頁面中的顯示控制項會顯示出對應UserModel類的屬性值.
}
//當修改顯示控制項中的資料後,其確定按鈕可做如下調用
private void Button1_Click(object sender, System.EventArgs e)
{
UserModel um = new UserModel ();
ControlManager1.BindDataRefresh(um);
//調用該方法後此時的um中的資料已經是你修改後的資料了。
}