ASP.NET 4 ListBox控件无法被禁用(2)
来源:未知 责任编辑:责任编辑 发表时间:2015-09-16 20:04 点击:次
{
protected override void OnLoadComplete(EventArgs e)
{
base.OnLoadComplete(e);
RunDisabledListSelectedListItem(this);
}
void RunDisabledListSelectedListItem(Control top)
{
foreach (Control ctl in top.Controls)
{
var lst = ctl as ListControl;
if (lst != null && !lst.Enabled)
foreach (ListItem item in lst.Items)
if (item.Selected)
item.Attributes.Add("class", WebControl.DisabledCssClass);
RunDisabledListSelectedListItem(ctl);
}
}
}
}
上述 RunDisabledListSelectedListItem 方法是为了配合 Main.css,用以补救 IE 8、IE 9 和 Chrome 浏览器的 bug 的。还有定义扩展方法的 WebControlExtensions.cs:
using System.Web.UI.WebControls;
namespace Skyiv.Common
{
public static class WebControlExtensions
{
static readonly string tagDisabled = "disabled";
public static void Enable(this WebControl ctl)
{
ctl.Enabled = true;
ctl.Attributes.Remove(tagDisabled);
}
public static void Disable(this WebControl ctl)
{
ctl.Enabled = false;
ctl.Attributes.Add(tagDisabled, tagDisabled);
}
}
}
上述 Disable 扩展方法就是用来补救 ListBox 服务器控件无法被禁用的。
最后是样式表 Main.css:
option.aspNetDisabled
{
color: White;
background-color: #00FFFF;
}
运行结果
上述测试程序的运行结果如下所示:
点击“禁用”按钮后:
相应的的 HTML 页面源代码如下所示:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>测试页</title>
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>