留言簿
留言成功,请等待站长审核,谢谢支持!
2005-08-25 15:54 满天
看来问题找到了,只有用 UrlPaging为True时,才会有这个问题,用PostBack试没问题
回复:您好,示例中通过url分页的代码中数据确实绑定了两次,通过url分页在分页过程中页面没有回发,所以其实在Page_Load中if(!Page.IsPostBack)块中绑定数据没有意义,因为每次分页仍然会执行这段代码,因为当初url分页的示例文件是直接从postback分页示例中复制过来后修改而成的,没注意到这个问题,以后虽然发现了但却一直没时间更新,如果您通过url来分页,可以去掉Page_Load中的数据绑定代码,只留分页控件的分页事件处理程序中的即可。谢谢!
2005-08-25 14:44 满天
OnPageChanged的问题,跟别人问的不一样 已经与"PageChanged"事件进行捆绑,PageChanged内有执行BindData()进行数据绑定,但我发现,无论是Post或URL方式,这个事件在页面载入的时候OnPageChanged都会执行,也就是说,当初始面页面的时候,BindData被执行了两次,数据被重复绑定一次,这可以在源代码中BindData中写入Response.Write("a");调试,看看输出几个a。吴老师的代码是重复了一次,输出2个a,这是怎么回事? btw: 我在控件中OnPageChanged="PageChanged"测试,或用InitializeComponent()方式“其一"测试的,并没有重复使用,吴老师看看,谢谢
2005-08-25 04:25 sinbad
你好,非常感谢你提供的aspnetpager控件,我用了有两年了一直没什么问题。但是最近遇到一个问题就是点击导航按钮页面数据总显示第一页。代码跟其他项目中的都一样,有的好用有的不好用。以下是代码:public void bindDataGrid(string strTypeId) { this.OpenDBConnection(); //获取总页数 this.sqlCmd=new SqlCommand("sp_pager",this.sqlConn); this.sqlCmd.CommandType=CommandType.StoredProcedure; this.sqlCmd.Parameters.Add("@tblName","nlusr_news"); this.sqlCmd.Parameters.Add("@strGetFields","*"); this.sqlCmd.Parameters.Add("@PageSize",30); this.sqlCmd.Parameters.Add("@PageIndex",1); this.sqlCmd.Parameters.Add("@strOrderBy","DATETIME"); this.sqlCmd.Parameters.Add("@orderType",true); this.sqlCmd.Parameters.Add("@doCount",true); this.sqlCmd.Parameters.Add("@KeyFileld","newid"); this.sqlCmd.Parameters.Add("@strWhere","type='"+strTypeId+"'"); this.AspNetPager1.RecordCount=(int)this.sqlCmd.ExecuteScalar(); //分页显示记录 this.sqlCmd=new SqlCommand("sp_pager",this.sqlConn); this.sqlCmd.CommandType=CommandType.StoredProcedure; this.sqlCmd.Parameters.Add("@tblName","nlusr_news"); this.sqlCmd.Parameters.Add("@strGetFields","*"); this.sqlCmd.Parameters.Add("@PageSize",this.AspNetPager1.PageSize); this.sqlCmd.Parameters.Add("@PageIndex",this.AspNetPager1.CurrentPageIndex-1); this.sqlCmd.Parameters.Add("@strOrderBy","DATETIME"); this.sqlCmd.Parameters.Add("@orderType",true); this.sqlCmd.Parameters.Add("@doCount",false); this.sqlCmd.Parameters.Add("@KeyFileld","newid"); this.sqlCmd.Parameters.Add("@strWhere","type='"+strTypeId+"'"); this.DataGrid1.DataSource=this.sqlCmd.ExecuteReader(); this.DataGrid1.DataBind(); this.closeDbConnection(); }
2005-08-25 04:25 sinbad
接上篇 private void AspNetPager1_PageChanged(object src, Wuqi.Webdiyer.PageChangedEventArgs e) { this.AspNetPager1.CurrentPageIndex=e.NewPageIndex; this.bindDataGrid(strTid); }
回复:您好,如果您的存储过程没有问题,计算出的总页数正确,那么一般出现分页时总显示第一页是因为没有将分页控件的PageChanged事件与事件处理程序关联起来,请检查您的代码中是否对此事件进行了关联?谢谢!
2005-08-20 13:53 兰亭
提几个小小的建议: 1、建议将示例数据库中的wqnews数据表给newsid字段设为主键,系统将自动加上聚集索引。这样分页速度要快得多(既然是示例,当然速度越快越好了^-^)。 2、建议将代码工具中的生成存储过程中,使用exec('sql语句')换为exec sp_executesql @sql语句,我试了一下,在数据量为200万条时,速度差距很明显 以上有什么不对的地方,请给予指正。谢谢。
回复:您好,newsid在表中本来就是主键,如果您的示例数据库中不是,可能是安装时脚本的问题;sq_executesql方法在一定条件下执行动态sql语句确实性能比用exec方法要高,这个方法我以前没注意到,所以存储过程工具生成的存储过程中没用到这个方法,下次升级时可以考虑改进一下存储过程工具。谢谢您的建议!
2005-08-20 12:00 xman
AspNetPager类的ButtonImageAlign有问题: 当设置了 ButtonImageAlign="right"后,其位置不对.
回复:您好,我测试了一下确实是这样,页面源代码的属性没有问题,出现这样的效果是浏览器显示方式导致的,我在下一个版本中记住改一下。谢谢!
2005-08-18 13:34 刘
请问access分页的例子Datagrid_url.aspx中 Page_load里的这句是什么意思? psize.Items.FindByValue(pager.PageSize.ToString()).Selected=true; pager.PageSize.ToString()这个值哪里来的? 里的pager.PageS后面ChangePagerPropertiesize=int.Parse(psize.SelectedItem.Value);这句我就明白,从id是psize的DropDownList控件取得。请解答一下,谢谢!
回复:您好,PageSize是AspNetPager的一个属性,即每页要显示的记录数。谢谢!
2005-08-17 12:31 Istone
吴哥,非常感谢你的回复! 我暂时用SESSION解决了参数传递的问题.不过还是做不了你这样简洁的界面,就是"1 2 3 4..."这样的.问了好几个人都说你的控件Dreamweaver里面使用不了,真是很郁闷呀.能否告诉我怎么解决呢? 还有呀,有一些问题,有人问过你了,为了不添加你的麻烦,俺就去问他们,他们却不告诉俺,真是人走茶凉,忘记自己也曾经很菜呀!
回复:您好,这是我第一次听说AspNetPager控件在Dreamweaver中无法使用,因为我从没用过Dreamweaver,所以没发现这个问题也不清楚为什么会这样,现在因为工作缘故暂时没有时间再升级这个控件,所以只能等以后做下一个版本的时候注意这个问题。谢谢您的提醒!
2005-08-16 18:11 ChrisLiu
找到原因了,谢谢
回复:恭喜,不用客气!
2005-08-16 17:17 ChrisLiu
您好,又来麻烦您了.从去掉和跟讨论分页问题时开始就用的控件一直到现在都觉得挺好用的.可是今天却出了点问题.我输出RecordCount/CurrentPageIndex/PageSize时,分别是8/1/5,当点第二页时是8/2/5.但不管是8/1/5还是8/2/5,都是显示的全部数据,而没有分页...晕.