为了能够在页面中保存其设置的属性与设置,于是我又写了两个专门用于保存数据的类ControlManagerSetting和ControlManagerSettingCollection.最后通过实验.
用控件的用法如下:
当用户把此控件拖到页面上后, 它会把页面上的所有在WebControls命名空间下的显示控件都扩展两个展性DataSource和PropertyName,于是我们就可以把每个控件的DataSource属性设置成后台model类的类名,PropertyName设置成后台model类的属性名.然后在后台PageLoad方法中如下写法:
if(!IsPostBack)
{
TestUser t = new TestUser(); //此处数据用于测试,可以从数据库中取出model对象的数据
t.UserName = "王伟";
t.UserAge = "25";
t.UserSex = "0";
t.UserBranch = "研发中心";
t.UserPosition = "2";
t.UserMarry = true;
ControlManager1.UserDataBind(t); //此处如果只绑定一个对象的话,为显示控件设置时可以不设置DataSource
//如果要绑定多个对象可用这种方法来指定要绑定的后台对象 ControlManager1.UserDataBind(t,“TestUser“);
}
此时调试,你会发现页面上的所有文本框与下拉列表框都显示出了你所指定的对象属性值了.这样就减小了很多类似给页面的显示控件负值的工作量.
如果你要把页面中显示控件中的数据修改后更新到后台model类的属性中,则可以如下般调用:
private void Button1_Click(object sender, System.EventArgs e)
{
TestUser t = new TestUser();
ControlManager1.BindDataRefresh(t);
Label7.Text = ""; //下面代码为测试对象t是否是修改后的数据
Label7.Text = t.UserName + "|" + t.UserAge + "|" + t.UserSex + "|" + t.UserBranch + "|" + t.UserPosition + "|" + t.UserMarry.ToString();
}
测试成功.
后来,我又用同样的原理来实现了VerifyManager和DictionaryManager两个管理控件.VerifyManager可以使页面上的所有功能按钮根据统一的权限获取接口来自动显隐.而DictionaryManager则可以使页面上的所有下拉列表框根据所设置对应的字典获取接口来自动绑定数据.这样前台页面的工作均变得简单了,同时值得一说的是,显示控件本身并不需要做任何修改.