一、效果圖
二、代碼
/// <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;
}