数据分页显示就是用DataSet缓存,当前页显示的内容是通过当前所在页和每页显示条数从DataSet中提取要显示的内容,copy到另一个DataSet中。

解决方案 »

  1.   

    谢谢大家的关注,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中.
      

  2.   

    补充一点我用的是 .NET Framework 1.1 版本 VS2003.NET,请不要告诉我用.NET Framework 2.0 里面的Virtual   Listview.