CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

用户控件中利用DATAGRID实现分页,但是在ASPX页面中必须点击分页按钮两次才可实现分页功能?真不不明白为什么?

楼主chengrg()2003-12-04 00:15:01 在 .NET技术 / ASP.NET 提问

谢谢! 问题点数:20、回复次数:11Top

1 楼ceocio(成都招聘.Net工程师,有意者请联系我)回复于 2003-12-04 00:24:25 得分 0

你的具体代码帖出来看看呢?  
   
  -----------------------------------  
  http://ceocio.blogger.cn  
  -----------------------------------  
  Top

2 楼chengrg()回复于 2003-12-04 00:30:59 得分 0

namespace   XSCWeb.UserControl  
  {  
  using   System;  
  using   System.Data;  
  using   System.Drawing;  
  using   System.Web;  
  using   System.Web.UI.WebControls;  
  using   System.Web.UI.HtmlControls;  
   
  ///   <summary>  
  /// NewsGrid   的摘要说明。  
  ///   </summary>  
  public   class   NewsGrid   :   ControlBase  
  {  
  protected   System.Web.UI.WebControls.DataGrid   DataGrid1;  
  private   int   classID=0;  
  private   int   specialID=0;  
  private   string   className="";  
  private   string   specialName="";  
  private   int   categoryID=0;  
  private   string   categoryName="";  
  private   string   selectSql="";  
  private   int   titleWidth=0;  
  private   int   gridWidth=0;  
  protected   System.Web.UI.WebControls.HyperLink   HyperLink1;  
  protected   System.Web.UI.WebControls.HyperLink   HyperLink2;  
  protected   System.Web.UI.WebControls.HyperLink   HyperLink3;  
  protected   System.Web.UI.WebControls.Panel   Panel2;  
  private   string   itemImgUrl="";  
  public   int   ClassID  
  {  
  set  
  {  
  classID=value;  
  }  
  get  
  {  
  return   classID;  
  }  
  }  
  public   int   SpecialID  
  {  
  set  
  {  
  specialID=value;  
  }  
  get  
  {  
  return   specialID;  
  }  
  }  
  public   string   ClassName  
  {  
  get  
  {  
  if(classID!=0)  
  {  
  base.showSubClass=new   ShowSubClass(classID);  
  className=base.showSubClass.ClassName;  
  }  
  return   className;  
  }  
  }  
  public   string   SpecialName  
  {  
  get  
  {  
  if(specialID!=0)  
  {  
  base.showSpecial=new   ShowSpecial(specialID);  
  specialName=base.showSpecial.SpecialName;  
  }  
  return   specialName;  
  }  
  }  
  public   int   CategoryID  
  {  
  get  
  {  
  if(classID!=0)  
  {  
  base.showSubClass=new   ShowSubClass(classID);  
  categoryID=base.showSubClass.CategoryID;  
  }  
  else  
  {  
  base.showSpecial=new   ShowSpecial(specialID);  
  categoryID=base.showSpecial.CategoryID;  
  }  
  return   categoryID;  
  }  
  }  
  public   string   CategoryName  
  {  
  get  
  {  
  base.showCategory=new   ShowCategory(this.CategoryID);  
  categoryName=base.showCategory.CategoryName;  
  return   categoryName;  
  }  
  }  
  public   string   SelectSql  
  {  
  set  
  {  
  selectSql=value;  
  }  
  }  
  public   string   ItemImgUrl  
  {  
  set  
  {  
  itemImgUrl=value;  
  }  
  }  
  public   int   TitleWidth  
  {  
  set  
  {  
  titleWidth=value;  
  }  
  }  
  public   int   GridWidth  
  {  
  set  
  {  
  gridWidth=value;  
  }  
  }  
  public   DataGrid   NewsDataGrid  
  {  
  get  
  {  
  return   DataGrid1;  
  }  
  }  
   
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  if(!Page.IsPostBack)  
  {  
  if(gridWidth!=0)  
  DataGrid1.Width=new   Unit(gridWidth);  
  else  
  DataGrid1.Width=new   Unit(510);  
  BindtoDataGrid();  
  HyperLink1.Text="首页";  
  HyperLink1.NavigateUrl=base.WebUrl+"index.aspx";  
  HyperLink2.Text=this.CategoryName;  
  HyperLink2.NavigateUrl="";  
  if(classID!=0)  
  {  
  HyperLink3.Text=this.ClassName;  
  }  
  else  
  {  
  HyperLink3.Text=this.SpecialName;  
  }  
  }  
  //   在此处放置用户代码以初始化页面  
  //MoreLink.Visible=false;  
   
  }  
  private   void   BindtoDataGrid()  
  {  
  DataSet   ds=new   DataSet();  
  base.showNews=new   ShowNews();  
  if(selectSql!="")  
  {  
  ds=base.showNews.GetNewsbySelectSql(selectSql);  
  }  
  else  
  {  
  if(classID!=0)  
  {  
  ds=base.showNews.GetNewsbyClassID(classID);  
  }  
  if(specialID!=0)  
  {  
  ds=base.showNews.GetNewsbySpecialID(specialID);  
  }  
  }  
  if(ds.Tables.Count!=0)  
  {  
  DataGrid1.DataSource=ds;  
  DataGrid1.DataBind();  
  }  
  }  
  public   void   MakeNewsList()  
  {  
  DataGrid1.PageSize=8;  
  DataGrid1.PagerStyle.Visible=false;  
  //MoreLink.Visible=true;  
  }  
  public   void   SetPageSize(int   pageSize)  
  {  
  DataGrid1.PageSize=pageSize;  
  }  
  public   void   SetItemBackColor(string   color)  
  {  
  DataGrid1.ItemStyle.BackColor=System.Drawing.ColorTranslator.FromHtml(color);  
  }  
  public   void   SetAItemBackColor(string   color)  
  {  
  DataGrid1.AlternatingItemStyle.BackColor=System.Drawing.ColorTranslator.FromHtml(color);  
  }  
  public   void   SetPagerBackColor(string   color)  
  {  
  DataGrid1.PagerStyle.BackColor=System.Drawing.ColorTranslator.FromHtml(color);  
  }  
  //设置HyperLink1,2,3不可见  
  public   void   SetPanelUnvisible()  
  {  
  Panel2.Visible=false;  
  }  
   
   
  #region   Web   窗体设计器生成的代码  
  override   protected   void   OnInit(EventArgs   e)  
  {  
  //  
  //   CODEGEN:   该调用是   ASP.NET   Web   窗体设计器所必需的。  
  //  
  InitializeComponent();  
  base.OnInit(e);  
  }  
   
  ///   <summary>  
  /// 设计器支持所需的方法   -   不要使用代码编辑器  
  /// 修改此方法的内容。  
  ///   </summary>  
  private   void   InitializeComponent()  
  {  
  this.DataGrid1.PageIndexChanged   +=   new   System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);  
  this.DataGrid1.ItemDataBound   +=   new   System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);  
  this.Load   +=   new   System.EventHandler(this.Page_Load);  
   
  }  
  #endregion  
   
   
  private   void   DataGrid1_PageIndexChanged(object   source,   System.Web.UI.WebControls.DataGridPageChangedEventArgs   e)  
  {  
  DataGrid1.CurrentPageIndex=e.NewPageIndex;  
  BindtoDataGrid();  
  }  
   
  private   void   DataGrid1_ItemDataBound(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
  //set   ItemImg  
  if(e.Item.ItemIndex>-1)  
  {  
   
  System.Web.UI.WebControls.Image   NowItemImg=(System.Web.UI.WebControls.Image)e.Item.Cells[2].FindControl("ItemImg");  
  TimeSpan   ts=new   TimeSpan();  
  DateTime   updateTime=Convert.ToDateTime(e.Item.Cells[3].Text);  
  ts=DateTime.Now.Subtract(updateTime);  
  int   diff=ts.Days;  
  if   (diff<=3)      
  {  
  NowItemImg.ImageUrl=base.WebUrl+"images/new.gif";  
  }  
  else  
  {  
  NowItemImg.ImageUrl=base.WebUrl+"images/item-img.gif";  
  //有ItemImgUrl可以用  
  }  
   
  //set   TitleLink  
  System.Web.UI.WebControls.HyperLink   Title=(HyperLink)e.Item.Cells[2].FindControl("TitleLink");  
  string   text=e.Item.Cells[4].Text;  
  if(titleWidth>0&&titleWidth<text.Length)  
  {  
  text=e.Item.Cells[4].Text.Substring(0,titleWidth)+"...";  
  }  
  //text=@"<img   src="+base.WebUrl+@"images/item-img.gif>"+text;  
  if(e.Item.Cells[7].Text=="&nbsp;")  
  {  
  Title.Text=text;  
  }  
  else  
  {  
  Title.Text=text+"(图)";  
  }  
  Title.ForeColor=System.Drawing.ColorTranslator.FromHtml(e.Item.Cells[6].Text);  
  Title.NavigateUrl=base.WebUrl+"Content.aspx?NewsID="   +   e.Item.Cells[0].Text;  
  Title.ToolTip=e.Item.Cells[4].Text   +   ";人气:"+e.Item.Cells[5].Text;  
  try  
  {  
  foreach(System.Web.UI.Control   c   in   e.Item.Cells[2].Controls)  
  {  
  if(c.GetType().ToString()=="System.Web.UI.LiteralControl")  
  {  
  //e.Item.Cells[2].Controls.Remove(c);  
  c.Visible=false;  
  }  
  }  
  }  
  catch  
  {}  
  }  
  }  
  }  
  }  
  Top

3 楼superch0054(竹君子)回复于 2003-12-04 01:12:11 得分 3

你不要拖控件,用代码写,就不会了。Top

4 楼soochowgreen(Green)回复于 2003-12-04 08:35:05 得分 3

同意樓上。  
  其實不用那麽繁瑣。Top

5 楼srj911(人海茫茫)回复于 2003-12-04 08:38:13 得分 3

分页后还要绑定Top

6 楼waki(不老先生(http://www.aspxcontrol.com))回复于 2003-12-04 08:51:13 得分 3

分页后重新绑定一下就不会要按两次了。Top

7 楼ceocio(成都招聘.Net工程师,有意者请联系我)回复于 2003-12-04 10:45:49 得分 3

参考以下几篇:  
  http://www.csdn.net/develop/Read_Article.asp?Id=22259  
  http://www.csdn.net/develop/Read_Article.asp?Id=22297  
  http://www.csdn.net/develop/Read_Article.asp?Id=21875  
  http://www.csdn.net/develop/Read_Article.asp?Id=18627  
  http://www.csdn.net/develop/Read_Article.asp?Id=18760Top

8 楼cjzlxy(享受孤独)回复于 2003-12-10 17:49:04 得分 3

给不老先生20分,他太牛B了,一句话就把问题给解决了。Top

9 楼cjzlxy(享受孤独)回复于 2003-12-10 17:51:51 得分 2

有谁不会分页的,我建议大家去看看这个帖子  
  http://expert.csdn.net/Expert/topic/2436/2436657.xml?temp=.1623194  
  看过后什么页都会分了。Top

10 楼qiuliang1979(高举C#的伟大旗帜)回复于 2003-12-10 19:35:25 得分 0

我觉得还不如自己写分页类,爽呆了!Top

11 楼hqz010(sky)回复于 2003-12-11 10:16:53 得分 0

按一下页的代码中还要对datagrid重新进行ban定!就是重新与数据集联接Top

相关问题

  • datagrid 分页控件
  • 哪里有好的DataGrid分页控件?
  • 关于datagrid控件分页问题
  • DataGrid控件的自定义分页??
  • DataGrid控件的分页功能如何实现呀?
  • 谁有DATAGRID控件自定义分页的完整C#代码??
  • 如何不用DataGrid等web控件作分页显示???
  • asp.net中如何不用DataGrid等web控件作分页显示
  • 请问如何将AspNetPager分页控件绑定到DATAGRID或DATALIST
  • 如何使用 Visual C# .NET 对 DataGrid Windows 控件执行分页

关键词

  • .net
  • datagrid
  • 代码
  • ds
  • article
  • csdn
  • 分页
  • specialid
  • showspecial
  • showsubclass

得分解答快速导航

  • 帖主:chengrg
  • superch0054
  • soochowgreen
  • srj911
  • waki
  • ceocio
  • cjzlxy
  • cjzlxy

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo