DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit)

 
        #region 下拉框 comboBoxEdit 和 LookUpEditor

        //  设置下拉框   传入参数(需要设置的下拉框控件,查询的语句,默认第一行的内容)
        public static void SetComboList(DevExpress.XtraEditors.ComboBoxEdit ComboList, string QuerySQL, string FirstRowText = "",bool bSelectFirstItem=false)
        {
            DataTable dtList=null;
            try
            {
                dtList = sqlHelper.ExecuteDataTable(Common.ConnString, CommandType.Text, QuerySQL, null);
            }
            catch (Exception ex)
            {
                frm0201.DisplayMsg("数据访问异常:", ex.Message.ToString());
                return;
            }

            int intCount = (dtList!=null) ? dtList.Rows.Count : 0;
            ComboList.Properties.TextEditStyle = TextEditStyles.DisableTextEditor; // 设置 comboBox的文本值不能被编辑
            ComboList.Properties.Items.Clear();
            if (!string.IsNullOrEmpty(FirstRowText)) ComboList.Properties.Items.Add(FirstRowText);

            if (intCount > 0)
            {
                for (int i = 0; i < intCount; i++)
                {
                    ComboList.Properties.Items.Add(dtList.Rows[i][0].ToString());
                }
            }
            if (bSelectFirstItem) ComboList.SelectedIndex = 0; // 设置选中第1项
        }

        //设置下拉框   loe 为下拉框名, sSql 为下拉框的数据来源
        public static void SetLookUpList(ref DevExpress.XtraEditors.LookUpEdit loeSource, string strSQL, int ValueCol = 0, int NameCol = 1,DataTable dtSource=null,bool bSelectFirstItem=false,string sFirstRowText="")
        {
            DataTable dt =null;

            try
            {
                if (!string.IsNullOrEmpty(strSQL))
                {
                    dt = sqlHelper.ExecuteDataTable(Common.ConnString, CommandType.Text, strSQL, null);
                }
                else if (dtSource != null)
                {
                    dt = dtSource.Copy();
                }
            }
            catch (Exception ex)
            {
                frm0201.DisplayMsg("数据访问异常:", ex.Message.ToString());
                return;
            }

            loeSource.Properties.Columns.Clear();
            loeSource.Properties.DataSource = null;

            if (dt!=null && dt.Rows.Count > 0 && dt.Columns.Count > 1) // 一般为2列: id列 和 value 列
            {
                loeSource.Properties.Columns.Add(new LookUpColumnInfo(dt.Columns[ValueCol].ColumnName.ToString()));
                loeSource.Properties.Columns[ValueCol].Visible = false; // 隐藏id列
                loeSource.Properties.Columns.Add(new LookUpColumnInfo(dt.Columns[NameCol].ColumnName.ToString()));

                if (!string.IsNullOrEmpty(sFirstRowText))
                {
                    DataRow dr = dt.NewRow();
                    dr[dt.Columns[ValueCol]] = -1; // 这一项的 ID 值为 -1
                    dr[dt.Columns[NameCol]] = sFirstRowText;
                    dt.Rows.InsertAt(dr, 0);// 从索引为0的位置插入
                }

                loeSource.Properties.DataSource = dt;
                loeSource.Properties.ValueMember = dt.Columns[ValueCol].ColumnName; // 对应ID
                loeSource.Properties.DisplayMember = dt.Columns[NameCol].ColumnName; // 显示内容

                if (bSelectFirstItem) // 是否选中第一项
                {
                    int iID=0;
                    if(Int32.TryParse(dt.Rows[0][0].ToString(),out iID))
                    {
                        loeSource.EditValue = iID;
                    }
                }
            }

            loeSource.Properties.ShowHeader = false;
            loeSource.Properties.ShowFooter = false;
            loeSource.Properties.NullText = "";
        }

        // 得到下拉框 的内容项,以Keys.Tab拼成一个字符串 
        public static string GetComboList(string sQuerySQL)
        {
            try
            {
                DataTable dtList = sqlHelper.ExecuteDataTable(Common.ConnString, CommandType.Text, sQuerySQL, null);
                if (dtList!=null && dtList.Rows.Count > 0 && dtList.Columns.Count == 1) // 有数据且只有一列
                {
                    string sResult = string.Empty;
                    for (int i = 0; i < dtList.Rows.Count; i++)
                    {
                        sResult += dtList.Rows[i][0].ToString() + Convert.ToChar(Keys.Tab);
                    }

                    if (sResult.Length > 1)
                    {
                        sResult = sResult.Remove(sResult.Length - 1);
                    }
                    return sResult;
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message.ToString());
            }

            return "";
        }

        #endregion

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值