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;
}
运行结果
上述测试程序的运行结果如下所示:

 enabled ListBox


点击“禁用”按钮后:


disabled ListBox


相应的的 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>

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • 浅析.NET下XML数据访问新机制
  • asp.net 面试+笔试题目第1/2页
  • C# 邮件地址是否合法的验证
  • asp.net 设置GridView的选中行的实现代码
  • C#高级编程:数据库连接[1]
  • ASP.NET&#160;GridView列表代码示例
  • 经典C++程序1
  • 微软ASP.NET站点部署指南(2):部署SQL Server Compact数据库
  • 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transforma
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1