在填充了数据表的组合框之后,第一个组合框项丢失

本文关键字:组合 第一个 之后 数据表 填充 | 更新日期: 2023-09-27 18:30:23

我的表格上有一个combobox和一个datatablecombobox将由datatable的一些行值填充。但在此之前,我想添加一个名为(new)combobox项,这将是combobox的第一个选项,以防用户想要添加新项。

但是当我的combobox填满时,我的(新)由于某种原因没有出现。

string query = "SELECT Id,Name,Text FROM ApsisSms ORDER BY Id DESC";
OleDbDataAdapter da = new OleDbDataAdapter(query, conn);
conn.Open();
da.Fill(dtSmsMessages);
comboSMSMessages.Items.Add(new ComboboxItem() { Text = "(new)", Value = "-1" });
if (dtSmsMessages.Rows != null && dtSmsMessages.Rows.Count > 0)
{
    comboSMSMessages.Items.Clear();
    for (int i = 0; i < dtSmsMessages.Rows.Count; i++)
    {
        ComboboxItem item = new ComboboxItem()
        {
            Text = dtSmsMessages.Rows[i]["Name"].ToString(),
            Value = dtSmsMessages.Rows[i]["Id"].ToString()
        };
        comboSMSMessages.Items.Add(item);
    }
}
comboSMSMessages.SelectedIndex = 0;

在填充了数据表的组合框之后,第一个组合框项丢失

comboSMSMessages.Items.Clear();清除所有项目 Add comboSMSMessages.Items.Add(new ComboboxItem() { Text = "(new)", Value = "-1" }); 清除组合框后 您的代码应该像

string query = "SELECT Id,Name,Text FROM ApsisSms ORDER BY Id DESC";
OleDbDataAdapter da = new OleDbDataAdapter(query, conn);
conn.Open();
da.Fill(dtSmsMessages);
if (dtSmsMessages.Rows != null && dtSmsMessages.Rows.Count > 0)
{
comboSMSMessages.Items.Clear();
comboSMSMessages.Items.Add(new ComboboxItem() { Text = "(new)", Value = "-1" });
for (int i = 0; i < dtSmsMessages.Rows.Count; i++)
{
 ComboboxItem item = new ComboboxItem()
    {
        Text = dtSmsMessages.Rows[i]["Name"].ToString(),
        Value = dtSmsMessages.Rows[i]["Id"].ToString()
    };
    comboSMSMessages.Items.Add(item);
 }
}
comboSMSMessages.SelectedIndex = -1;