发表评论
#3楼 [
楼主]2008-02-25 08:37 |
@金色海洋(jyk)
你的评论我没看太懂,请你解释一下应该怎样做吧?我觉得已经是用户控件了,而接口只是提供扩展,可以实现也可不实现(如果你打算采用QueryString形式的链接获取方式)。
#5楼 [
楼主]2008-02-25 09:13 |
@(武眉博<活靶子Net> )
好的,谢谢~
从你的很多文章中,我收获了很多营养.深表感谢!加油
--引用--------------------------------------------------
张子阳.: @金色海洋(jyk)
你的评论我没看太懂,请你解释一下应该怎样做吧?我觉得已经是用户控件了,而接口只是提供扩展,可以实现也可不实现(如果你打算采用QueryString形式的链接获取方式)。
-------------------------------------------------------
你做的是Web控件,用户控件是可以直接编译成一个DLL的,然后直接拖拽
#8楼 [
楼主]2008-02-25 09:19 |
@Vincent Yang
你说的按我理解是 Custom Control(自定义控件),我说的是User Control(用户控件)
现在这样改起来比较方便,而且可能我还想设置不同的显示方式,比如有时候想这样显示: 1 2 3 ... 18 ,等完善了再做成 自定义控件。
建议将分页逻辑独立为一个组件,在显示控件中调用分页逻辑组件。
不好意思,早上时间匆忙写错了。
不是用户,而是自定义服务器控件。
其实有好多地方是可以优化的,从显示速度的角度考虑。
另外查询条件的地方有没有考虑呢?
比如查询的页面,用户输入了几个关键字,然后用分页的形式来显示查询结果。
在分页的时候查询条件如何保存?
(没有仔细看,不知道你的控件有没有考虑到)
#13楼 [
楼主]2008-02-25 12:39 |
@金色海洋(jyk)
查询条件当然可以保存,因为DefaultUrlManager类对于URL的处理是使用正则表达式 替换了 ?page= 或者 &page= 后面的页数,对于其他的参数不管是顺序还是数值都不加改动。
#14楼 [
楼主]2008-02-25 12:39 |
@佳文
谢谢支持~~!
@andy.wu
谢谢建议~~
我是说表单里的查询条件,
表单提交 url里面是不会有参数的。
比如页面里有一个文本框,输入新闻标题,作为查询条件。
这时候翻页了,这个条件(新闻标题的查询条件)如何处理呢?
能绑定 数据源吗? 就是 用户控件有没得 一个属性能指定 数据源呢?
比如指定为 OBJDATA``` 而且是那种 浏览方式` 一点 就能显示出
当前页面上的 数据源 对象``` 呵呵``` 不知道 能理解吗?
谢谢~
#17楼 [
楼主]2008-02-25 14:19 |
@隐姓埋名
能理解,不过很遗憾,不支持。如果你有办法达到这样的效果,不妨提供参考,或者提供一些可供参考的URL链接,谢谢!
如果要指定,让我做的话可能仅仅是在控件内保存一个对指定的数据源控件的引用。
另外,这个控件是用来显示分页,而不是用来显示数据,为什么要指定一个数据源控件呢?仅仅为了取得所需行数么?
@金色海洋(jyk)
你说的那样是产生 PostBack 的,我没有考虑那种情况,因为这个主要应用在Web站点程序(区别于Web应用程序),此时我希望页面上的内容是通过 Get 请求可以访问的。
#19楼 [
楼主]2008-02-25 18:06 |
@xiazhi33
这位大哥,我发出来你发现Bug就提出来啊,这样我改起来不是更快些么?而且我没有编译成dll文件,你也可以自己直接改代码。
我现在发现的Bug是PageSize为0的情况,我现在要去吃饭,等会儿回来更新。
有两种情况会 产生 PostBack
1、后台管理里的查询。
网站要有一个后台管理吧,这里面少不了查询,如果这里的查询也用get的话,那代码量就会多很多。
而且asp.net提供了viewstate 功能,能够自动保存状态,如果后台管理里使用URL分页的话,viewstate 功能就完全用不上了。
网页不用 viewstate 是好事,但是后台管理不用的话,就郁闷了。
2、网页里的查询。
网页里面也会有查询吧,这里的查询倒是可以用URL的方式传递查询条件,因为查询条件会比较少。
还是那句话,用postback保存查询条件会比较方便。
我的分页控件就是两种:一个是URL分页,一个是PostBack分页。分别用于网页和后台管理。
即使是URL的方式,我也会把查询条件“自动”加在URL的参数里面,在接受到的时候,由分页控件自行处理,而不用调用者操心。
我的标准:通用的操作、复杂的操作,都要放在控件里面处理。
过两天要出差了,回来再整理一下我的分页控件,发一下,感兴趣的话,一起研究一下。
http://www.cnblogs.com/jyk/archive/2007/05/31/766908.html
这里有我的思路。
BUG!
在页面上 提交POST
会说 IURL 啥的 为空`
你放一个 按钮 跟用户控件
一个页面` 提交下就知道了哇` 请修补```
支持!!!
#22楼 [
楼主]2008-03-04 14:24 |
@xiazhi33
页面产生有PostBack的时候把类似这样的语句:
CustomPager1.UrlManager = new DefaultUrlManager(337);
放到OnLoad事件中,注意不要放在 if(!IsPostBacke){...}程序段中。
#23楼 [
楼主]2008-03-26 21:36 |
这个用户控件还很不完善,它没有维持ViewState,这样在PostBack的时候必须重新生成一遍控件,影响性能。另外最好实现为 自定义控件(Customer Control) ,我有时间了会继续完善它。
请问 在 asp.net 2.0 里用这控件, 页面为什么会刷新两次?
谢谢
#25楼 [
楼主]2008-06-19 18:57 |
不管怎么样对我是很有帮助的,觉得不完善的自己改哈嘛,
又不是编译个dll要卖给大家!
做程序员不可以那么懒的,大家多讨论,多做哈。不要光等待!
支持楼主!
为什么我在你的基础上改了下。 增加一个文本框和跳转HyperLink . 但是为什么取不到文本框的值?
代码如下:
TextBox tb = new TextBox();
tb.ID = "txtIndex";
pnPager.Controls.Add(tb);
TextBox txtIndex = new TextBox();
txtIndex = pnPager.FindControl("txtIndex") as TextBox;
pnPager.Controls.Add(txtIndex);
txtIndex永远是空的。。。。
#29楼 [
楼主]2008-09-10 14:12 |
@问天何必
你要么把你改过的东西发给我看下,从你上面我看不出来,而且这个东东太早前的了,已经很久没有再看了。