Tree与ListView相结合使用,listView分页显示数据

maicklove 2007-05-30 10:44:53
C#.NET WindowForm窗体上,左边一个Tree控件,右边一个listView,点击Tree控件上的一个树结点时,listView上显示此结点对应相关的数据,此时listView上显示的数据有很多5000条以上,我想用四个控件"首页","上一页","下一页","未页"来进行分页显示.如何实现这个功能.

数据源分析:
Tree控件数据是从A表里查询得到.

listView控件数据是从B,C,D表关联查询出来放在程序中创建表E中的数据.

A表与E表是通过关键字段keyWord来相关联的.

对于listView分页功能,网上查询了很久没有满意的结果,在此希望大哥们多多指教,谢谢!
...全文
368 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shinaterry 2007-05-30
  • 打赏
  • 举报
回复
.
maicklove 2007-05-30
  • 打赏
  • 举报
回复
补充一点我用的是 .NET Framework 1.1 版本 VS2003.NET,请不要告诉我用.NET Framework 2.0 里面的Virtual Listview.
maicklove 2007-05-30
  • 打赏
  • 举报
回复
谢谢大家的关注,To wzq6511:

private void tvwMain_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
DataRow[] rows = null;
string sort = "sendDate desc";
if(this.conMnuBoxEmail.Checked)
{
if(this.tvwMain.SelectedNode.Parent != null)
{
string tag = this.tvwMain.SelectedNode.Tag.ToString();
string filter = "1>2";
if(tag.Equals(MailBoxTag.ReceptBox.ToString())) //收件箱
{
filter = string.Format("MailAccountID = '{0}' and MailBoxTag = '{1}'",this.tvwMain.SelectedNode.Parent.Tag,tag);
}
rows = this.dtMail.Select(filter,sort);
}
if(rows.Length > 0)
Init_LvwMain(rows);
}
}

private void Init_LvwMain(DataRow[] rows)
{
lvwEMail.BeginUpdate();
ListViewItem lst;
this.lvwEMail.Items.Clear();
foreach(DataRow row in rows)
{
lst = new ListViewItem( );
lst.Tag = row[Mail._MessageID].ToString();
lst.SubItems.Add(addresserAttn.ToString());
lst.SubItems.Add(row[Mail._Addressee].ToString());
lst.SubItems.Add(row[Mail._Subject].ToString());
lst.SubItems.Add(row[Mail._SendDate].ToString());
lst.SubItems.Add(row[Mail._MailBig].ToString());
this.lvwEMail.Items.Add(lst);
}
lvwEMail.EndUpdate();
}

由上面的代码可以看到 dtMail 就前面数据源分析中的"E"表.这里是没有用到DataSet数据集.而是从dtMail表中依条件过滤出来得到的DataRow[] rows来循环把数据Add到lveEMail中.
scow 2007-05-30
  • 打赏
  • 举报
回复
不管啥控件,分页都是通过更改后台的数据源实现的,方法就两个:
1 取出所有数据,在内存中分页,再绑定。(界面意义上的分页)
2 按传入的页码在数据库层分页,取出‘某页’数据绑定。(数据意义上的分页)
wzq6511 2007-05-30
  • 打赏
  • 举报
回复
数据分页显示就是用DataSet缓存,当前页显示的内容是通过当前所在页和每页显示条数从DataSet中提取要显示的内容,copy到另一个DataSet中。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧