supNate的新天地 ——学的越多,知道的越少
SATURDAY
2009-6-29GridView为什么不分页?
分类:技术专区时间:2009-6-29 16:29:20作者:supNate
标签:asp.net    gridview    分页    
今天Kevin问我为什么下面的代码生成的GridView为何不分页?
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" PageSize="10" DataKeyNames="id" AllowPaging="true" OnPageIndexChanging="PageIndexChanging">
顿时一愣,这个问题是如此眼熟,以至于还能记得以前经常遇到这个问题每次都要想上半天,而且还记得是一个很幼稚的错误引起。却一时半会想不起来。这种情况确实令人郁闷,却经常发生-_-。
幸运的是经过5分钟的绞尽脑汁,终于想起来原因,遂记录下来,以备查询:
Asp.net从2.0开始支持theme,如果设置了一个globalSkin,那么所有的page都会应用这个theme。而GridView的分页属性是可以在theme里设定的。这时会覆盖掉aspx文件中定义的属性。
例如:我在app_thems/GlobalSkin/GridView.skin就定义了所有GridView的默认外观(包括分页)。
<asp:GridView runat="server" CellPadding=5 ForeColor="#333333" BorderWidth="1px" BorderColor="#dddddd" PageSize=20>
    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
</asp:GridView>
这里的PageSize="20"就覆盖了控件定义里设置的PageSize="10",这就造就了GridView不能分页的假象,实际上如果数据量超过20还是会分页的。解决办法一是不在theme里定义PageSize,二是在控件或者页面的配置中设置EnableTheming="false"。
-查看评论 (16)+发表评论+Trackback地址+Trackbacks (0)
【评论1】时间:2009-6-29 17:22:35作者:Kevin
好吧,我承认,这个倒霉的人就是我[s:9]
【评论2】时间:2009-6-29 21:02:27作者:bb
[s:5][s:6]
【评论3】时间:2009-7-3 15:58:26作者:Lily
貌似nate这里都是某猴blog的广告....[s:2]
【评论4】时间:2009-7-4 20:46:11作者:bb
[s:1]
【评论5】时间:2009-7-13 19:45:58作者:sd
d[s:5]
【评论6】时间:2009-7-14 16:29:34作者:aa
qew
【评论7】时间:2009-7-20 15:11:15作者:Levin
兄弟回来写博客了呵呵[s:8]
之前ibm之旅怎么样?
【评论8】时间:2009-8-28 13:37:13作者:龙龙
[s:15][s:15][s:10][s:10]
【评论9】时间:2009-9-2 6:59:10作者:df
sdfdfefe[s:1]
【评论10】时间:2009-9-2 14:26:39作者:percybenny
我能学好ajax课程[s:1]
【评论11】时间:2009-9-2 14:32:23作者:percy
我一定能学好ajax这门课程。[s:1]
【评论12】时间:2009-9-3 16:42:01作者:enriqueluo
你的上海正大商业房地产的朋友“小倪”(13761031832)想联系上你,在不打搅到小楠的情况下,收到请务必联系!
【评论13】时间:2009-9-10 22:35:18作者:bb
[s:1]
【评论14】时间:2009-9-17 17:06:18作者:没看到大变化
[s:9]
体验一般
【评论15】时间:2009-10-21 14:14:07作者:的发生地方
[s:12][s:9][s:5][s:2][s:16]
【评论16】时间:2009-10-21 14:14:32作者:测试
存储vcvcv[s:4]