#region "绑定填充comobox控件" public class MyComboBoxControl { #region "自定义字段" private string tIndexFieldName; private string tValueFieldName; private System.Collections.ArrayList tSourceArray; private System.Windows.Forms.ComboBox tComboBox; private System.Data.DataTable tSourceDataTable; private string tError=""; private string[] tOtherField;
#endregion
#region "自定义属性" /// <summary> ///填充时可能发生的错误信息 /// </summary> public string error { get { return tError; } }
/// <summary> /// Combo控件可以绑定的数据表 /// </summary> public System.Data.DataTable SoureDataTable { get { return tSourceDataTable; } set { tSourceDataTable=value; } }
/// <summary> /// 保存数据的数组集合,将做为combo的数据源 /// </summary> public System.Collections.ArrayList SoureArray { get { return tSourceArray; } set { tSourceArray=value; } }
/// <summary> ///数据源表提供的索引字段名称 /// </summary> public string IndexFieldName { get { return tIndexFieldName; } set { tIndexFieldName=value; } }
/// <summary> /// 数据源表提供的内容字段名称 /// </summary> public string ValueFiledName { get { return tValueFieldName; } set { tValueFieldName=value; } }
/// <summary> /// 将绑定的ComboBox控件 /// </summary> public System.Windows.Forms.ComboBox ComboBox { get { return tComboBox; } set { tComboBox=value; } } #endregion
public MyComboBoxControl() { tSourceArray=new System.Collections.ArrayList(); tComboBox=new System.Windows.Forms.ComboBox(); }
public MyComboBoxControl(System.Data.DataTable pDataTable) { tSourceDataTable=pDataTable; tSourceArray=new System.Collections.ArrayList(); tComboBox=new System.Windows.Forms.ComboBox(); }
public MyComboBoxControl(System.Windows.Forms.ComboBox pComboBox, System.Data.DataTable pDataTable, string pValueFieldName, string pIndexFieldName, params string[] pOtherField) { tSourceDataTable=pDataTable; tSourceArray=new System.Collections.ArrayList(); //pComboBox.Items.Clear(); tComboBox=pComboBox; tValueFieldName=pValueFieldName; tIndexFieldName=pIndexFieldName; tOtherField=pOtherField;
BindComboBoxByDataTable(); } /// <summary> /// 将数据源表填入数组集合并绑定到combobox /// </summary> /// <returns></returns> public bool BindComboBoxByDataTable() { try { foreach(DataRow tDataRow in tSourceDataTable.Rows) { string[] m=null;//=new string[tOtherField.Length];
if (tOtherField!=null) { if (tOtherField.Length>0) { m=new string[tOtherField.Length]; for(int i=0;i<=tOtherField.Length-1;i++) { m[i]=tDataRow[tOtherField[i]].ToString(); } } }
tSourceArray.Add(new MyComboBoxItem(tDataRow[tValueFieldName].ToString() , Convert.ToInt32(tDataRow[tIndexFieldName]),m)); }
if (tSourceDataTable.Rows.Count >0) { tComboBox.DataSource = tSourceArray; tComboBox.DisplayMember ="Value"; tComboBox.ValueMember = "Index"; } return true; } catch (System.Exception e) { tError=e.ToString(); return false; } } }
public class MyComboBoxItem {
public MyComboBoxItem() {
}
/// <summary> /// 绑定的数组集合的元素类 /// </summary> /// <param name="pValue">内容、值</param> /// <param name="pIndex">索引、键</param> public MyComboBoxItem(string pValue, int pIndex,params string[] pOtherValue) { tIndex = pIndex; tValue = pValue; tOtherValue=pOtherValue; } #region "自定义属性"
private string tValue; private int tIndex; private string[] tOtherValue;
/// <summary> /// 内容属性 /// </summary> public string Value { get{return tValue;} }
/// <summary> /// 索引属性 /// </summary> public int Index { get{return tIndex;} }
/// <summary> /// 辅助提示属性 /// </summary> public string[] OtherValue { get{return tOtherValue;} }
#endregion } #endregion //填充指定数值到ComboBox中 public void FillDataInfoToCombo(System.Windows.Forms.ComboBox pComboBox,string pName,int pId,params string[] pOther) { My.MyComboBoxControl t=new TRAFFICERPSYSTEM.My.MyComboBoxControl(); My.MyComboBoxItem m=new TRAFFICERPSYSTEM.My.MyComboBoxItem(pName,pId,pOther); t.SoureArray.Add(m); pComboBox.DataSource=t.SoureArray; pComboBox.DisplayMember ="Value"; pComboBox.ValueMember = "Index"; t=null; }
#region "填充隶属站信息到combobox"
public bool FillSbdStaCbo(System.Windows.Forms.ComboBox pComboBox) { DataSet t=new DataSet (); //自己连数据库 Business.SysManage.SysManage s=new Business.SysManage.SysManage();
if (!s.GetSubordStation(t,"SbdStaInfo")) { tError=s.err; t=null; s=null; return false; }
My.MyComboBoxControl m=new TRAFFICERPSYSTEM.My.MyComboBoxControl(pComboBox,t.Tables[0],"SbdStaName","SbdStaId"); if (m.error!="") { tError="填充隶属站信息失败!"+m.error; t=null; m=null; return false; }
m=null;s=null;t=null; return true; } 
|