【发布时间】:2021-06-16 13:25:46
【问题描述】:
DataGridView 检索的脚本是:
DataSet ds1 = new DataSet();
isSqlString = "SELECT [Item] AS itemName,Status as itemStatus From Items;"
SqlDataAdapter da = new SqlDataAdapter(isSqlString, isConnStr);
da.Fill(ds1, "items");
datagridview1.DataSource = ds1.Tables["items"].DefaultView;
IList:
IList<ItemStatusClass> itemStatus =
new List<ItemStatusClass>
{
new ItemStatusClass { id = 0, name = "AAA" },
new ItemStatusClass { id = 1, name = "BBB" },
new ItemStatusClass { id = 2, name = "CCC" }
};
我已经使用以下代码添加了这个:
DataGridViewComboBoxColumn statusCol = new DataGridViewComboBoxColumn();
statusCol.DataPropertyName = "itemStatus";
statusCol.Name = "Status";
statusCol.ReadOnly = false;
statusCol.DataSource = itemStatus;
statusCol.DisplayMember = "name";
statusCol.ValueMember = "id";
datagridview1.Columns.Add(statusCol);
datagridview1.Columns[2].DataPropertyName = "itemStatus";
我只需要将 IList<ItemStatusClass> 添加到 DataGridView 的现有列中。
在 DataGridView 的最后一个列中出现了现有列的值。但是现有列没有变化,现有列的值保持不变。项目代码列处于隐藏状态。
如上图所示,显示了两个 Status 列。第一个状态列来自 SQL,第二个状态列是我以编程方式添加的。
我需要第二个状态列必须显示为第二个状态列。请让我摆脱这种情况。
【问题讨论】:
-
DataGridView 上是否有类似“AutoGenerateColumn”的选项?
-
是的,我可以选择我的 datagrigview。
-
我在设置数据源之前添加。