ListView中的子项和列名称未显示

时间:2014-12-09 06:11:30

标签: c# listview

这是我正在处理的代码

private void button1_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString);
    SqlCommand cmd = new SqlCommand("select * from sometable", con);
    con.Open();
    SqlDataAdapter ada = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    ada.Fill(dt);

    for (int i = 0; i < dt.Rows.Count; i++)
    {
        DataRow dr = dt.Rows[i];
        ListViewItem listitem = new ListViewItem(dr["Col1"].ToString()); // Value is 9999
        listitem.SubItems.Add(dr["Col2"].ToString()); // Value is 10 
        listitem.SubItems.Add(dr["Col3"].ToString()); // Value is 5

        listView1.Items.Add(listitem);
    }
}

但我得到的输出是订单

enter image description here

listView1.View = View.Details;添加到代码中会产生空列表视图。如何获得显示列名和所有值的输出?我忘记了我正在做的错误。知道我哪里错了吗?

1 个答案:

答案 0 :(得分:4)

尝试设置listView1.View to View.Details并在设计器中向listView1.Columns添加3个正确的列:

Here it is in designer

或代码:

listView.Columns.Clear();
listView.Columns.Add("Col1");
listView.Columns.Add("Col2");
listView.Columns.Add("Col3");

然后,以这种方式添加项目:

listView.Items.Add(new ListViewItem(new[]
    {
        dr["Col1"].ToString(),
        dr["Col2"].ToString(),
        dr["Col3"].ToString()
    }));        

它总是适合我。 您的代码可能已生成空网格,因为您没有列。