怎么使列变成下拉列表框??
dibov 2003-11-03 05:13:20 我自定义了DataGridTableStyle的一个列为DataGridComboBoxColumn(下载的一个形成下拉列表框的类),与DataGrid绑定之后,初始显示的值怎么全部为NULL,并且选择列表框中的项并不反应到相对应的列中?
如下是代码:
private void CreateDataGridTableStyle(DataSet ds)
{
DataGridTableStyle tsTitle = new DataGridTableStyle();
DataGridTextBoxColumn csTitle = new DataGridTextBoxColumn();
DataGridComboBoxColumn ComboCol = new DataGridComboBoxColumn();
DataGridTextBoxColumn csTime = new DataGridTextBoxColumn();
DataGridBoolColumn bsIsOK = new DataGridBoolColumn();
tsTitle.MappingName="docTitle";
tsTitle.AlternatingBackColor = Color.LightGray;
CreateDropDownValue();//先生成下拉列表中的数据
//
// csTitle
//
csTitle.Format = "";
csTitle.HeaderText = "文档标题";
csTitle.MappingName = "Doc_Title";
csTitle.Width = 125;
tsTitle.GridColumnStyles.Add(csTitle);
//
//ComboTextCol
//
ComboCol.MappingName="doc_type";
ComboCol.HeaderText="文档类型";
ComboCol.Width=75;
ComboCol.ColumnComboBox.DataSource=ds.Tables["ComboTextCol"].DefaultView;
ComboCol.ColumnComboBox.DisplayMember="Name";
ComboCol.ColumnComboBox.ValueMember="Value";
tsTitle.PreferredRowHeight = ComboCol.ColumnComboBox.Height + 2;
tsTitle.GridColumnStyles.Add(ComboCol);
//
// csTime
//
csTime.Format = "yyyy-mm-dd";
csTime.FormatInfo = null;
csTime.HeaderText = "时间";
csTime.MappingName = "Doc_Year";
csTime.Width = 75;
tsTitle.GridColumnStyles.Add(csTime);
//
// bsIsOK
//
bsIsOK.FalseValue = "0";
bsIsOK.HeaderText = "是否有效";
bsIsOK.MappingName = "Is_OK";
bsIsOK.ReadOnly = true;
bsIsOK.TrueValue = "1";
bsIsOK.Width = 25;
tsTitle.GridColumnStyles.Add(bsIsOK);
this.dataGridIndex.TableStyles.Add(tsTitle);
}
在构构函数中调用后并绑定。