サーバーコントロール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();
                }
            }
        }

これでいいです.