DevExpress:下拉框綁定數據源 (ComboBoxEdit,LookUpEdit)


DevExpress:下拉框綁定數據源 (ComboBoxEdit,LookUpEdit)
  1 DevExpress:下拉框綁定數據源 (ComboBoxEdit,LookUpEdit)
  2 
  3  
  4 //  設置下拉框   傳入參數(需要設置的下拉框控件,查詢的語句,默認第一行的內容)  
  5 public static void SetComboList(DevExpress.XtraEditors.ComboBoxEdit ComboList, string QuerySQL, string FirstRowText = "",bool bSelectFirstItem=false)  
  6 {  
  7     DataTable dtList=null;  
  8     try  
  9     {  
 10         dtList = sqlHelper.ExecuteDataTable(Common.ConnString, CommandType.Text, QuerySQL, null);  
 11     }  
 12     catch (Exception ex)  
 13     {  
 14         frm0201.DisplayMsg("數據訪問異常:", ex.Message.ToString());  
 15         return;  
 16     }  
 17   
 18     int intCount = (dtList!=null) ? dtList.Rows.Count : 0;  
 19     ComboList.Properties.TextEditStyle = TextEditStyles.DisableTextEditor; // 設置 comboBox的文本值不能被編輯  
 20     ComboList.Properties.Items.Clear();  
 21     if (!string.IsNullOrEmpty(FirstRowText)) ComboList.Properties.Items.Add(FirstRowText);  
 22   
 23     if (intCount > 0)  
 24     {  
 25         for (int i = 0; i < intCount; i++)  
 26         {  
 27             ComboList.Properties.Items.Add(dtList.Rows[i][0].ToString());  
 28         }  
 29     }  
 30     if (bSelectFirstItem) ComboList.SelectedIndex = 0; // 設置選中第1項  
 31 }  
 32   
 33 //設置下拉框   loe 為下拉框名, sSql 為下拉框的數據來源  
 34 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="")  
 35 {  
 36     DataTable dt =null;  
 37   
 38     try  
 39     {  
 40         if (!string.IsNullOrEmpty(strSQL))  
 41         {  
 42             dt = sqlHelper.ExecuteDataTable(Common.ConnString, CommandType.Text, strSQL, null);  
 43         }  
 44         else if (dtSource != null)  
 45         {  
 46             dt = dtSource.Copy();  
 47         }  
 48     }  
 49     catch (Exception ex)  
 50     {  
 51         frm0201.DisplayMsg("數據訪問異常:", ex.Message.ToString());  
 52         return;  
 53     }  
 54   
 55     loeSource.Properties.Columns.Clear();  
 56     loeSource.Properties.DataSource = null;  
 57   
 58     if (dt!=null && dt.Rows.Count > 0 && dt.Columns.Count > 1) // 一般為2列: id列 和 value 列  
 59     {  
 60         loeSource.Properties.Columns.Add(new LookUpColumnInfo(dt.Columns[ValueCol].ColumnName.ToString()));  
 61         loeSource.Properties.Columns[ValueCol].Visible = false; // 隱藏id列  
 62         loeSource.Properties.Columns.Add(new LookUpColumnInfo(dt.Columns[NameCol].ColumnName.ToString()));  
 63   
 64         if (!string.IsNullOrEmpty(sFirstRowText))  
 65         {  
 66             DataRow dr = dt.NewRow();  
 67             dr[dt.Columns[ValueCol]] = -1; // 這一項的 ID 值為 -1  
 68             dr[dt.Columns[NameCol]] = sFirstRowText;  
 69             dt.Rows.InsertAt(dr, 0);// 從索引為0的位置插入  
 70         }  
 71   
 72         loeSource.Properties.DataSource = dt;  
 73         loeSource.Properties.ValueMember = dt.Columns[ValueCol].ColumnName; // 對應ID  
 74         loeSource.Properties.DisplayMember = dt.Columns[NameCol].ColumnName; // 顯示內容  
 75   
 76         if (bSelectFirstItem) // 是否選中第一項  
 77         {  
 78             int iID=0;  
 79             if(Int32.TryParse(dt.Rows[0][0].ToString(),out iID))  
 80             {  
 81                 loeSource.EditValue = iID;  
 82             }  
 83         }  
 84     }  
 85   
 86     loeSource.Properties.ShowHeader = false;  
 87     loeSource.Properties.ShowFooter = false;  
 88     loeSource.Properties.NullText = "";  
 89 }  
 90   
 91 // 得到下拉框 的內容項,以Keys.Tab拼成一個字符串   
 92 public static string GetComboList(string sQuerySQL)  
 93 {  
 94     try  
 95     {  
 96         DataTable dtList = sqlHelper.ExecuteDataTable(Common.ConnString, CommandType.Text, sQuerySQL, null);  
 97         if (dtList!=null && dtList.Rows.Count > 0 && dtList.Columns.Count == 1) // 有數據且只有一列  
 98         {  
 99             string sResult = string.Empty;  
100             for (int i = 0; i < dtList.Rows.Count; i++)  
101             {  
102                 sResult += dtList.Rows[i][0].ToString() + Convert.ToChar(Keys.Tab);  
103             }  
104   
105             if (sResult.Length > 1)  
106             {  
107                 sResult = sResult.Remove(sResult.Length - 1);  
108             }  
109             return sResult;  
110         }  
111     }  
112     catch (Exception ex)  
113     {  
114         XtraMessageBox.Show(ex.Message.ToString());  
115     }  
116   
117     return "";  
118 } 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM