ASP.NET AJAX Advance Tips & Tricks (8) 扩展AJAX Control Toolkit中的控件2011-10-18 cnblogs LanceZhang需求:TabContainer容器中的TabPanel类本身就包含了Enabled属性,也可以使用JavaScript方法 set_enabled(X)来设置Enabled属性,如果某个TabPanel的这个属性为false的话,这个TabPanel就不会显 示在TabContainer中,这与一般控件的“Enabled”属性不太一样,我认为叫它“Visiable”会更加恰当 。如下图所示:


有时候这并不符合我们的需求,所以,在本例中,我们将为其添加Disabled功能,使TabPanel控件可 以变成灰色,而不响应客户端事件。1. 添加服务端属性:首先我们找到TabPanel.cs也就是TabPanel类,在其中添加如下属性来代表TabPanel是“恢复启用”还 是“变灰禁用”状态:
[DefaultValue("")]
[Category("Behavior")]
[ExtenderControlProperty]
[ClientPropertyName("disabled")]
public bool Disabled
{
get { return (bool)(ViewState["Disabled"] ?? false); }
set { ViewState["Disabled"] = value; }
}
internal bool Active
{
get { return _active; }
set { _active = value; }
}
在属性中,我们设置ClientPropertyName为“disabled”,也就是将这个属性映射到JavaScript Behavior代码中的_disabled属性,并以ViewState为状态保存容器。