ListView控件的数据绑定与读取
ListView控件可以直接查看数据信息,使操作更加容易。这篇文章将告诉你C#中的ListView数据绑定控件的一些用法,希望对要用到ListView控件的新手朋友有所帮助。
在Listview中添加表头
在控制编辑列中添加表头
//表头的样式 listView1.GridLines = true; listView1.FullRowSelect = true; listView1.View = View.Details; listView1.Scrollable = false; listView1.MultiSelect = false; listView1.HeaderStyle = ColumnHeaderStyle.Clickable; //方法一 //声明标题与创建对象 ColumnHeader ch = new ColumnHeader(); //标题 ch.Text = "奥运参赛国家"; //列宽,默认为60 ch.Width = 60; //显示文本 对齐方式 ch.TextAlign = HorizontalAlignment.Center;
//把标题添加到listview this.listView1.Columns.Add(ch); //后续列 ColumnHeader againCh... //方法二
listView1.Columns.Add("ID", 50, HorizontalAlignment.Center);
listView1.Columns.Add("国家", 50, HorizontalAlignment.Center);
listView1.Columns.Add("金牌", 50, HorizontalAlignment.Center); listView1.Columns.Add("银牌", 50, HorizontalAlignment.Center); listView1.Columns.Add("铜牌", 60, HorizontalAlignment.Center);
Listview控件的数据绑定
采用foreach遍历dt或ds的每一行记录,然后绑定到ListView的对应列里。
private void BindDataToListView() { //清理旧的数据 this.listView1.Items.Clear(); DataSet ds = 数据(database)//判断ds是否存在数据 if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { int sor = Convert.ToInt32(dr["ID"].ToString()); string strNation = dr["Nation"].ToString(); string strGoldMedal = dr["GoldMedal"].ToString(); string strSilverMedal = dr["SilverMedal"].ToString(); string strBronzeMedal = dr["BronzeMedal"].ToString(); ListViewItem IvItem = new ListViewItem(); //ID IvItem.Text = sor.ToString(); IvItem.Tag = dr; //国家 IvItem.SubItems.Add(strNation.ToString()); //金牌 IvItem.SubItems.Add(strGoldMedal.ToString()); //银牌 IvItem.SubItems.Add(strSilverMedal.ToString()); //铜牌 IvItem.SubItems.Add(strBronzeMedal.ToString()); this.listView1.Items.Add(IvItem); } } }
蒽,获取当前点击ListView中行的数据,然后显示出来:
private void listView1_Click(object sender, EventArgs e) { if (listView1.Items.Count <= 0) return; if (listView1.SelectedItems.Count <= 0) return; int index = this.listView1.SelectedItems[0].Index; if (index < 0) return; DataRow dr = (DataRow)(this.listView1.Items[index].Tag); MessageBox.Show(dr["Nation"].ToString() + dr["GoldMedal"].ToString());
MessageBox.Show(this.listView1.SelectedItems[0].SubItems[1].Text.ToString());
//方法二
MessageBox.Show(listView1.SelectedItems[0].SubItems[0].Text);
MessageBox.Show(listView1.SelectedItems[0].SubItems[1].Text);
MessageBox.Show(listView1.SelectedItems[0].SubItems[2].Text);
//ListViewItem iv = new ListViewItem(ds.Tables[0].Rows[1][1].ToString());
//iv.Tag = ds.Tables[0].Rows[1][1].ToString(); ////读取隐藏列
//this.listView1.SelectedItems[0].Tag.ToString();
}
隐藏列
在上面第二中方法中有解决方法,可以读取被隐藏的列。
在第二种方法中: lv = new ListViewItem(ds.Tables[0].Rows[i][1].ToString()); 意味着listview中的第一行的数据信息,
lv.Tag=ds.Tables[0].Rows[i][0].ToString(); //代表隐藏列。
读取隐藏列时,可以使用下面的代码来获取隐藏列的值。
//this.listView1.SelectedItems[0].Tag.ToString();