Asp.Netコントロール値を空にする方法(コントロールタイプをカスタマイズ可能)

2141 ワード

プロジェクトの終わりのため、最近いくつかの方法の最適化に忙しくて、いくつかの共有を整理しました.
ページに多くのコントロールがある場合、値を空にする必要がある場合は、空にするのは面倒です.そこで、空のコントロールのタイプをカスタマイズし、ビジネスニーズに柔軟に対応できる方法を書きました.
 
  
///
/// http://www.qqextra.com 2012-12-28
public enum ReSetType
{
///
/// TextBox
///

TXT,
///
/// DropDownList
///

DDL,
///
/// RadioButtonList
///

RBL,
///
/// ReSetType
///

ALL
}
///
/// http://www.qqextra.com 2012-12-28
/// this
/// ReSetType.ALL ReSetType
public static void ReSet(Control control, params ReSetType[] rst)
{
bool blTxt = false;
bool blDdl = false;
bool blRbl = false;
foreach (ReSetType type in rst)
{
if (type == ReSetType.ALL)
{
blTxt = true;
blDdl = true;
blRbl = true;
break;
}
else
if (type == ReSetType.TXT)
blTxt = true;
else if (type == ReSetType.DDL)
blDdl = true;
else if (type == ReSetType.RBL)
blRbl = true;
}
foreach (Control c in control.Controls)
{
//
if (c is TextBox && blTxt == true)
{
((TextBox)c).Text = "";
}
else
//
if (c is DropDownList && blDdl == true)
{
DropDownList ddl = (DropDownList)c;
if (ddl.Items.Count > 0)
{
ddl.SelectedIndex = 0;
}
}
else
//
if (c is RadioButtonList && blRbl == true)
{
((RadioButtonList)c).SelectedIndex = -1;
}
else
if (c.HasControls())
{
//
ReSet(c, rst);
}
}
}