此篇算是对http://www.cnblogs.com/insus/archive/2012/04/17/2454620.html重构升级。
因为网友需要不但能禁用还能可以启用DropDownList的Items。为了不想用户写太多代码。Insus.NET写了一个类别,并让它继承了System.Web.UI.WebControls命名空间下的DropDownList. 可从下图看到InsusDropDownList实例化并传入DropDownList控件,然后实例化之后的对象,就是可以使用highlight的四个方法DisableImsByText(), DisabletemsByVue() ,EnableItemsBText(), EnableItemsByValue()。
InsusDropDownList类别:
InsusDropDownList
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
/// <summary>
/// Summary description for InsusDropDownList
/// </summary>
namespace Insus.NET
{
public class InsusDropDownList : DropDownList
{
DropDownList _DropDownList;
public InsusDropDownList(DropDownList dropDownList)
{
this._DropDownList = dropDownList;
}
public void DisableItemsByText(string text)
{
DisableItems(GetIndexByText(text));
}
public void EnableItemsByText(string text)
{
EnableItems(GetIndexByText(text));
}
public void DisableItemsByValue(string value)
{
DisableItems(GetIndexByValue(value));
}
public void EnableItemsByValue(string value)
{
EnableItems(GetIndexByValue(value));
}
private int GetIndexByText(string text)
{
return this._DropDownList.Items.IndexOf(this._DropDownList.Items.FindByText(text));
}
private int GetIndexByValue(string value)
{
return this._DropDownList.Items.IndexOf(this._DropDownList.Items.FindByValue(value));
}
private void DisableItems(int index)
{
if (index > -1)
this._DropDownList.Items[index].Attributes.Add("disabled", "disabled");
}
private void EnableItems(int index)
{
if (index > -1)
this._DropDownList.Items[index].Attributes.Remove("disabled");
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
/// <summary>
/// Summary description for InsusDropDownList
/// </summary>
namespace Insus.NET
{
public class InsusDropDownList : DropDownList
{
DropDownList _DropDownList;
public InsusDropDownList(DropDownList dropDownList)
{
this._DropDownList = dropDownList;
}
public void DisableItemsByText(string text)
{
DisableItems(GetIndexByText(text));
}
public void EnableItemsByText(string text)
{
EnableItems(GetIndexByText(text));
}
public void DisableItemsByValue(string value)
{
DisableItems(GetIndexByValue(value));
}
public void EnableItemsByValue(string value)
{
EnableItems(GetIndexByValue(value));
}
private int GetIndexByText(string text)
{
return this._DropDownList.Items.IndexOf(this._DropDownList.Items.FindByText(text));
}
private int GetIndexByValue(string value)
{
return this._DropDownList.Items.IndexOf(this._DropDownList.Items.FindByValue(value));
}
private void DisableItems(int index)
{
if (index > -1)
this._DropDownList.Items[index].Attributes.Add("disabled", "disabled");
}
private void EnableItems(int index)
{
if (index > -1)
this._DropDownList.Items[index].Attributes.Remove("disabled");
}
}
}
演示,启用Items:
if (Request.QueryString["site"] != null)
{
InsusDropDownList obj = new InsusDropDownList(this.DropDownList1);
obj.EnableItemsByText(Request.QueryString["site"]);
}
{
InsusDropDownList obj = new InsusDropDownList(this.DropDownList1);
obj.EnableItemsByText(Request.QueryString["site"]);
}