サーバーコントロールDropDownList
2246 ワード
一、使い方
一般的に、ドロップダウンボックスを使用するのは、2つの意図にほかならない.1.直接文字値を取得します.2.字面値は表示のためだけであり、その字面値を表す符号化が必要である.サーバコントロールDropDownListの両方に対応しています.表データをドロップダウン・ボックスにバインドする方法を説明します.
上のコード:
#region
// ( datatable
private void DataBindDropDownList(DropDownList downlist, DataTable dt,string displayFiled,string ValueFiled)
{
downlist.Items.Clear();
downlist.DataSource = dt;
downlist.DataTextField = displayFiled;// , ( dt )
downlist.DataValueField = ValueFiled;// ( dt )
downlist.DataBind();
}
#endregion
選択した値を取り出した場合:
string displayFiled= sys_provider_code.SelectedValue;//sys_provider_code
二、注意
Webページをロードするときに、ドロップダウン・ボックスを初期化する方法が間違っている場合は、ドロップダウン・ボックスの値を選択しても、必要な値が毎回取得されず、デフォルトの最初の値だけが得られます.
間違った書き方:
protected void Page_Load(object sender, EventArgs e)
{
this._key = base.Request["key"];
DataBindDropDownList(sys_provider_code, (new DataExport()).GetDataByCondition(SqlDic_Provider), "provider_name", "provider_code");
DataBindDropDownList(sys_org_code, (new DataExport()).GetDataByCondition(SqlDic_Org), "org_name", "org_code");
if (!base.IsPostBack)
{
if (!string.IsNullOrEmpty(this._key))
{
this.InitData();
}
}
}
このように書くと、毎回デフォルトの最初の値が得られます.
正しい書き方:
protected void Page_Load(object sender, EventArgs e)
{
this._key = base.Request["key"];
if (!base.IsPostBack)
{
DataBindDropDownList(sys_provider_code, (new DataExport()).GetDataByCondition(SqlDic_Provider), "provider_name", "provider_code");
DataBindDropDownList(sys_org_code, (new DataExport()).GetDataByCondition(SqlDic_Org), "org_name", "org_code");
if (!string.IsNullOrEmpty(this._key))
{
this.InitData();
}
}
}
これでいいです.