C#中爲GridView指定列添加下拉列表

 一、效果圖

二、代碼

        /// <summary>
        /// 下拉列表值綁定,適用於單列表
        /// </summary>
        /// <param name="gridView"></param>
        /// <param name="strTableName"></param>
        /// <param name="strColumnName">GridView中需綁定的列名</param>
        public void BindComboBoxOfGV(GridView gridView, string strTableName, string strColumnName, string gvColumnName)
        {
            RepositoryItemComboBox cBox = new RepositoryItemComboBox();
            cBox.Items.Clear();

            string strUnitSql = string.Format("SELECT DISTINCT {0} FROM {1}", strColumnName, strTableName);
            DataTable dt = db.GetDataTable(strUnitSql);
            if (dt == null || dt.Rows.Count == 0) return;

            foreach (DataRow dr in dt.Rows)
            {
                string strCaption = dr[strColumnName].ToString();
                cBox.Items.Add(strCaption);//下拉列表添加值
            }

            cBox.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;
            
            gridView.Columns[gvColumnName].ColumnEdit = cBox;
        }
        /// <summary>
        /// 下拉列表值綁定,適用於樹型表(有父節點)
        /// </summary>
        /// <param name="gridView"></param>
        /// <param name="strTableName"></param>
        /// <param name="parentId"></param>
        /// <param name="strColumnName">GridView中需綁定的列名</param>
        public void BindComboBoxOfGV(GridView gridView, string strTableName, string strColumnName, int parentId, string gvColumnName)
        {
            RepositoryItemComboBox cBox = new RepositoryItemComboBox();
            cBox.Items.Clear();

            string strUnitSql = string.Format("SELECT DISTINCT {0} FROM {1} WHERE ParentID={2}", strColumnName, strTableName, parentId);
            DataTable dt = db.GetDataTable(strUnitSql);
            if (dt == null || dt.Rows.Count == 0) return;

            foreach (DataRow dr in dt.Rows)
            {
                string strCaption = dr[strColumnName].ToString();
                cBox.Items.Add(strCaption);//下拉列表添加值
            }

            cBox.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;
            gridView.Columns[gvColumnName].ColumnEdit = cBox;
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章