总结了在使用Infragistics.WebUI.UltraWebTab.v4.3中出现的一些问题,记录如下备查。
本贴随着时间推移持续更新中。
如何调用Tab中的WebControl?
在使用WebTab的时候可能存在这样的需求:在Tab中放置的是自己开发的WebControl,需要在点击Tab时激发WebControl的特定方法,例如初始化之类的。
在刚开始的时候我直接使用控件引用在进行调用,结果总是报“未将对象引用设置到对象的实例。”之类的错误。后来还好经验丰富:D联想到DataGrid的使用方法,一试,搞定。
原来应该使用Tab.FindControl()方法来取得对控件的引用。类似于这样:
当然,如果要使用TabClick事件的话,别忘了将WebTab的AutoPostBack设为True。;)
本贴随着时间推移持续更新中。
如何调用Tab中的WebControl?
在使用WebTab的时候可能存在这样的需求:在Tab中放置的是自己开发的WebControl,需要在点击Tab时激发WebControl的特定方法,例如初始化之类的。
在刚开始的时候我直接使用控件引用在进行调用,结果总是报“未将对象引用设置到对象的实例。”之类的错误。后来还好经验丰富:D联想到DataGrid的使用方法,一试,搞定。
原来应该使用Tab.FindControl()方法来取得对控件的引用。类似于这样:
private void UltraWebTab1_TabClick(object sender, Infragistics.WebUI.UltraWebTab.WebTabEvent e)
{
switch(e.Tab.Text)
{
case "用户管理":
myCfgUsers = (cfgUsers)e.Tab.FindControl("myCfgUsers");
myCfgUsers.InitData();
break;
case "用户组管理":
myCfgUserGroups = (cfgUserGroups)e.Tab.FindControl("myCfgUserGroups");
myCfgUserGroups.InitData();
break;
case "数据角色管理":
myCfgDataRoles = (cfgDataRoles)e.Tab.FindControl("myCfgDataRoles");
myCfgDataRoles.InitData();
break;
case "字典管理":
myCfgDictionary = (cfgDictionary)e.Tab.FindControl("myCfgDictionary");
myCfgDictionary.InitData();
break;
case "日志管理":
myCfgLog = (cfgLog)e.Tab.FindControl("myCfgLog");
myCfgLog.InitData();
break;
}
}
{
switch(e.Tab.Text)
{
case "用户管理":
myCfgUsers = (cfgUsers)e.Tab.FindControl("myCfgUsers");
myCfgUsers.InitData();
break;
case "用户组管理":
myCfgUserGroups = (cfgUserGroups)e.Tab.FindControl("myCfgUserGroups");
myCfgUserGroups.InitData();
break;
case "数据角色管理":
myCfgDataRoles = (cfgDataRoles)e.Tab.FindControl("myCfgDataRoles");
myCfgDataRoles.InitData();
break;
case "字典管理":
myCfgDictionary = (cfgDictionary)e.Tab.FindControl("myCfgDictionary");
myCfgDictionary.InitData();
break;
case "日志管理":
myCfgLog = (cfgLog)e.Tab.FindControl("myCfgLog");
myCfgLog.InitData();
break;
}
}
当然,如果要使用TabClick事件的话,别忘了将WebTab的AutoPostBack设为True。;)