Asp.Net DataGrid实现自定义分页

本文介绍了一个基于ASP.NET的新闻查询系统实现细节,包括如何根据类别和关键字筛选新闻、分页显示等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从项目中分析出来的,代码大家自己分析
  private newsClass Nc;
  private string depthstr;
  private string recordnum="";  
  public stringBase strBase;
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   Nc=new newsClass();
   strBase=new stringBase(); 
   depthstr="";
   if(!Page.IsPostBack)
   {
    ViewState["nowPage"]=1;
    dropshow();
    if (Request.QueryString["selectid"]==null&&Request.QueryString["keytext"]==null)
    {     
     GridBind();
    }
    else
    {
     if (Request.QueryString["selectid"]!=null&&Request.QueryString["keytext"]!=null)
     {
      GridBindKeys2();
     }
     else
     {
      if (Request.QueryString["selectid"]!=null)
      {
       GridBindselectid();
      }
      if (Request.QueryString["keytext"]!=null)
      {
       GridBindkeyword();       
      }
     }
    }
    pagecountshow();    
   }
  }

private void dropshow()
  {
   classDrop.Items.Clear();
   ListItem list=new ListItem();
   list.Value="0";
   list.Text="新闻类别";
   classDrop.Items.Add(list);
   classDrop.SelectedValue="0";
   DropBind(0,classDrop);
  }

  private void GridBind()
  {
   Label2.Text="";
   DataSet ds=new DataSet();
   ds=Nc.returenNews();
   if(ds!=null)
   {
    Cache.Insert("datagridlist",ds);
    DataGrid1.DataSource=ds.Tables[0].DefaultView;
    DataGrid1.DataBind();
    recordnum=ds.Tables[0].Rows.Count.ToString();
   }
  }

  private void GridBindKeys2()
  {//满足两个条件
   Label2.Text=Nc.returnClassname(Int32.Parse(Request.QueryString["selectid"].ToString()));
   DataSet ds=new DataSet();
   ds=Nc.returenNews(Int32.Parse(Request.QueryString["selectid"].ToString()),Request.QueryString["keytext"].ToString());
   if(ds!=null)
   {
    Cache.Insert("datagridlist",ds);
    DataGrid1.CurrentPageIndex=0;
    DataGrid1.DataSource=ds.Tables[0].DefaultView;
    DataGrid1.DataBind();
    recordnum=ds.Tables[0].Rows.Count.ToString();
   }
  }

  private void GridBindselectid()
  {//搜索类别
   Label2.Text=Nc.returnClassname(Int32.Parse(Request.QueryString["selectid"].ToString()));
   DataSet ds=new DataSet();
   ds=Nc.returenNews(Int32.Parse(Request.QueryString["selectid"].ToString()));
   if(ds!=null)
   {
    Cache.Insert("datagridlist",ds);
    DataGrid1.CurrentPageIndex=0;
    DataGrid1.DataSource=ds.Tables[0].DefaultView;
    DataGrid1.DataBind();
    recordnum=ds.Tables[0].Rows.Count.ToString();
   }   
  }

  private void GridBindkeyword()
  {//搜索关键字
   Label2.Text="";
   DataSet ds=new DataSet();
   ds=Nc.returenNews(Request.QueryString["keytext"].ToString());
   if(ds!=null)
   {
    Cache.Insert("datagridlist",ds);
    DataGrid1.CurrentPageIndex=0;
    DataGrid1.DataSource=ds.Tables[0].DefaultView;
    DataGrid1.DataBind();
    recordnum=ds.Tables[0].Rows.Count.ToString();
   }
  }

  private void pagecountshow()
  {//绑定分页
   pagesize.Text=DataGrid1.PageSize.ToString();
   pagecount.Text=DataGrid1.PageCount.ToString();
   nowpage.Text=Convert.ToString(DataGrid1.CurrentPageIndex+1);
   recordLabel.Text=recordnum.ToString();
  }

  private void cacheBind()
  {
   DataSet ds=(DataSet)Cache["datagridlist"];
   DataGrid1.DataSource=ds;
   DataGrid1.DataBind();
  }

  private void DropBind(int paterid,DropDownList droplist)
  {   
   DataSet ds=Nc.returnClass(paterid);
   if(ds!=null)
   {
    for(int i=0;i<ds.Tables[0].Rows.Count;i++)
    {
     ListItem list=new ListItem();
     if (ds.Tables[0].Rows[i]["depth"].ToString()=="0")
     {
      list.Text=ds.Tables[0].Rows[i]["name"].ToString();
     }
     else
     {
      string depth="";
      depth=depthstr+"—";
      list.Text=depth+ds.Tables[0].Rows[i]["name"].ToString();
     }
     list.Value=ds.Tables[0].Rows[i]["id"].ToString();
     droplist.Items.Add(list);
     DataSet ds2=Nc.returnClass(Int32.Parse(ds.Tables[0].Rows[i]["id"].ToString()));
     if(ds2.Tables[0].Rows.Count>0)
     {
      //depthstr+="—";
      DropBind(Int32.Parse(ds.Tables[0].Rows[i]["id"].ToString()),classDrop);
     }
    }
   }
  }
  private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  {//分页
   DataGrid1.CurrentPageIndex=e.NewPageIndex;
   if(classDrop.SelectedValue=="0")
   {
    GridBind();
   }
   else
   {
    DataSet ds=new DataSet();
    if(keyText.Text=="")
    {
     ds=Nc.returenNews(Int32.Parse(classDrop.SelectedValue));
     if(ds!=null)
     {
      DataGrid1.CurrentPageIndex=0;
      DataGrid1.DataSource=ds.Tables[0].DefaultView;
      DataGrid1.DataBind();
     }
    }
    else
    {
     ds=Nc.returenNews(Int32.Parse(classDrop.SelectedValue),keyText.Text);
     if(ds!=null)
     {
      DataGrid1.CurrentPageIndex=0;
      DataGrid1.DataSource=ds.Tables[0].DefaultView;
      DataGrid1.DataBind();
      recordnum=ds.Tables[0].Rows.Count.ToString();
     }
    }
   }
  }

  private void Button1_Click(object sender, System.EventArgs e)
  {//查询
   DataSet ds=new DataSet();
   if (classDrop.SelectedValue=="25")
   {
    if (Session["huibianflag"]==null||Session["huibianflag"].ToString()=="")
    {
     Response.Write("<script>alert('您没有访问文件汇编的权限');location.href='login.aspx';</script>");
     Response.End();
     return;    
    }
   }
   if(keyText.Text=="")
   {
    Label2.Text=Nc.returnClassname(Int32.Parse(classDrop.SelectedValue));
    ds=Nc.returenNews(Int32.Parse(classDrop.SelectedValue));
    if(ds!=null)
    {
     Cache.Insert("datagridlist",ds);
     DataGrid1.CurrentPageIndex=0;
     DataGrid1.DataSource=ds.Tables[0].DefaultView;
     DataGrid1.DataBind();
     recordnum=ds.Tables[0].Rows.Count.ToString();
     pagecountshow();
    }
   }
   else
   {
    Label2.Text=Nc.returnClassname(Int32.Parse(classDrop.SelectedValue));
    ds=Nc.returenNews(Int32.Parse(classDrop.SelectedValue),keyText.Text);
    if(ds!=null)
    {
     Cache.Insert("datagridlist",ds);
     DataGrid1.CurrentPageIndex=0;
     DataGrid1.DataSource=ds.Tables[0].DefaultView;
     DataGrid1.DataBind();
     recordnum=ds.Tables[0].Rows.Count.ToString();
     pagecountshow();
    }
   }   
  }

  private void firstButton_Click(object sender, System.EventArgs e)
  {//首页
   if(Cache["datagridlist"]!=null)
   {
    DataGrid1.CurrentPageIndex=0;
    cacheBind();
   }
   else
   {
    GridBind();
   }
   pagecountshow();
  }

  private void preButton_Click(object sender, System.EventArgs e)
  {//上一页
   if(DataGrid1.CurrentPageIndex-1>=0)
   {
    if(Cache["datagridlist"]!=null)
    {
     DataGrid1.CurrentPageIndex-=1;
     cacheBind();
    }
    else
    {
     GridBind();
    }
    pagecountshow();
   }
  }

  private void LinkButton3_Click(object sender, System.EventArgs e)
  {//下一页
   if(DataGrid1.CurrentPageIndex+1<DataGrid1.PageCount)
   {
    if(Cache["datagridlist"]!=null)
    {
     DataGrid1.CurrentPageIndex+=1;
     cacheBind();
    }
    else
    {
     GridBind();
    }
    pagecountshow();
   }
  }

  private void endButton_Click(object sender, System.EventArgs e)
  {//末页
   if(Cache["datagridlist"]!=null)
   {
    DataGrid1.CurrentPageIndex=DataGrid1.PageCount-1;
    cacheBind();
   }
   else
   {
    GridBind();
   }
   pagecountshow();
  }

  private void jumpButton_Click(object sender, System.EventArgs e)
  {//跳转
   if(pageText.Text!=""&&Int32.Parse(pageText.Text)>0&&Int32.Parse(pageText.Text)<=DataGrid1.PageCount)
   {
    if(Cache["datagridlist"]!=null)
    {
     DataGrid1.CurrentPageIndex=Int32.Parse(pageText.Text)-1;
     cacheBind();
    }
    else
    {
     GridBind();
    }
    pagecountshow();    
   }
   else
   {
   }
  }

  private void nextButton_Click(object sender, System.EventArgs e)
  {
   //下一页
   if(DataGrid1.CurrentPageIndex+1<DataGrid1.PageCount)
   {
    if(Cache["datagridlist"]!=null)
    {
     DataGrid1.CurrentPageIndex+=1;
     cacheBind();
    }
    else
    {
     GridBind();
    }
    pagecountshow();
   }
  
  } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值