赏梅斋

关注微软技术

博客园 首页 新随笔 联系 订阅 管理

WebForm ControlManager 控件介绍

 ControlManager 控件为所在WebForm中所有显示控件自动显示所设定的后台类的属性值。它可与任何显示控件相关联。举一个使用此控件的示例:在Web窗体上会有很多显示后台model类属性的显示控件(如TextBox),而为了能够不用写很多赋值语句,可以把ControlManager放到页面上,在设计时把显示控件与后台类通过扩展属性进行映射设置,然后需要显示数据的时候,只要把含有数据的model类实例传给ControlManager的绑定方法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中的数据已经是你修改后的数据了。

         }

posted on 2004-08-18 10:18  赏梅斋  阅读(1951)  评论(6)    收藏  举报