FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 3461|回复: 9
打印 上一主题 下一主题

【已解决】Grid数据库分页模拟树+检索的重绑定问题

[复制链接]
跳转到指定楼层
楼主
发表于 2013-2-28 09:16:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前台代码:
   
  1. <ext:PageManager runat="server" ID="pageManager1" AutoSizePanelID="Panel1" />
  2.     <ext:Panel ID="Panel1" runat="server" BodyPadding="5px" BoxConfigAlign="Stretch"
  3.         Title="" Layout="VBox" EnableBackgroundColor="true" ShowBorder="false" EnableLargeHeader="true">
  4.         <Items>
  5.             <ext:SimpleForm runat="server" BodyPadding="5px" ShowHeader="false" ShowBorder="false"
  6.                 EnableBackgroundColor="true">
  7.                 <Items>
  8.                     <ext:TriggerBox ID="ttbSearch" runat="server" Label="" ShowLabel="false" TriggerIcon="Search"
  9.                         EmptyText="输入要搜索的关键字">
  10.                     </ext:TriggerBox>
  11.                 </Items>
  12.             </ext:SimpleForm>
  13.             <ext:Panel runat="server" ID="Panel2" ShowHeader="false" BoxFlex="1" Layout="Fit">
  14.                 <Items>
  15.                   <ext:Grid runat="server" ID="gTerm" EnableCheckBoxSelect="True" DataKeyNames="TermId"
  16.                         PageSize="5" ShowHeader="false" ShowBorder="false"
  17.                         EnableRowNumber="True" AllowPaging="true" IsDatabasePaging="true">
  18.                         <Columns>                  
  19.                             <ext:BoundField HeaderText="字典名称" DataField="TermName" Width="250px" DataSimulateTreeLevelField="Level" />
  20.                             <ext:CheckBoxField Width="40px" RenderAsStaticField="true" DataField="IsSystem" HeaderText="系统" />
  21.                             <ext:BoundField HeaderText="字典编码" DataField="TermCode" Width="100px" />
  22.                         </Columns>
  23.                     </ext:Grid>
  24.                 </Items>
  25.             </ext:Panel>
  26.         </Items>
  27.     </ext:Panel>
复制代码

后台代码:
  1. /// <summary>
  2.         /// 分页
  3.         /// </summary>
  4.         private Pagination Pagination
  5.         {
  6.             get
  7.             {
  8.                 if (ViewState["Pagination"] == null)
  9.                 {
  10.                     var p = new Pagination() { PageSize = this.gTerm.PageSize };
  11.                     ViewState["Pagination"] = p;
  12.                 }
  13.                 return ViewState["Pagination"] as Pagination;
  14.             }
  15.         }

  16.         private TermQuery TermQuery
  17.         {
  18.             get
  19.             {
  20.                 if (ViewState["TermQuery"] == null)
  21.                     ViewState["TermQuery"] = new TermQuery();
  22.                 return ViewState["TermQuery"] as TermQuery;
  23.             }
  24.             set { ViewState["TermQuery"] = value; }
  25.         }
  26. protected void ttbSearch_TriggerClick(object sender, EventArgs e)
  27.         {
  28.             this.TermQuery.TermName = ttbSearch.Text.Trim();
  29.             this.gTerm_PageIndexChange(this.gTerm, new GridPageEventArgs(0));
  30.         }
  31. protected void gTerm_PageIndexChange(object sender, FineUI.GridPageEventArgs e)
  32.         {
  33.             this.gTerm.PageIndex = e.NewPageIndex;
  34.             this.Pagination.CurrentPageIndex = e.NewPageIndex;
  35.             this.BindTermList();
  36.         }
  37. private void BindTermList()
  38.         {
  39.             //这里是数据库分页检索获取数据,打过断点,这里检索出来的数据一直都没问题
  40.             var termList = GetTermListByDepth(this.TermQuery, this.Pagination);
  41.             gTerm.RecordCount = this.Pagination.RowCount.Value;
  42.             gTerm.DataSource = termList;//绑定数据
  43.             gTerm.DataBind();
  44.         }
复制代码


问题描述:进入页面的时候,绑定数据分页是正确的,如图1,树状分页了:

第一次检索,结果是正确的,如图2:

但是第二次检索,结果就不正确了,如图3:

第三次检索,结果不正确,如图4:

第二次检索的正确结果应该是图5:

第三次检索的正确结果应该如图6:

检索的时候,绑定的数据条数跟显示的数据条数都不一样的。还有一种情况是,假如前面第一次检索“课”的第一页数据总条数(不是根节点数)是17,第二次输入“学”字检索,界面没有任何变化!后台跟踪了返回的数据是正确的8条,但是绑定了以后,界面没有变化,还是以前的搜索结果。(只要后一次数据比前一次数据少,界面就没有反应

麻烦大家有空看看!请问这是一个BUG吗?还是我哪里写错了?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2013-3-2 07:07:06 | 只看该作者
我也遇见同样的问题
板凳
 楼主| 发表于 2013-3-4 06:02:32 | 只看该作者
大海中一滴水 发表于 2013-3-2 07:07
我也遇见同样的问题

好囧啊。。请问你解决了吗?我愣是没搞清楚为什么数据绑上去之后渲染出来会是那个样子。。难道要去看Grid内部的代码?....
地板
发表于 2013-3-5 11:45:45 | 只看该作者
你是用的数据库分页吧,应该是数据库分页的问题, 把IsDatabasePaging="True"改为false,这样可以实现查询,但是不用数据库分页又带来性能问题,我现在也没有用数据库分页的解决方案!
5#
发表于 2013-3-5 11:46:51 | 只看该作者
appletreegd 发表于 2013-3-4 06:02
好囧啊。。请问你解决了吗?我愣是没搞清楚为什么数据绑上去之后渲染出来会是那个样子。。难道要去看Grid ...

如果你在数据库分页下解决这个问题告诉我一下
6#
发表于 2013-3-7 02:29:58 | 只看该作者
这个帖子不错,大家快来顶起来!
7#
发表于 2013-3-17 09:54:22 | 只看该作者
请提供别人可以直接运行的例子,否则无法调试解决
8#
 楼主| 发表于 2013-3-19 15:24:22 | 只看该作者
sanshi 发表于 2013-3-17 09:54
请提供别人可以直接运行的例子,否则无法调试解决

三石老大,我在BUG区同名帖子提交了可以运行的例子
9#
发表于 2013-3-20 11:35:51 | 只看该作者
10#
 楼主| 发表于 2013-3-20 09:23:07 | 只看该作者
感谢三石老大!还有一个问题求解答,有空请看看~~谢谢~~
关于checkboxlist的hidden=true导致的验证问题
http://fineui.com/bbs/forum.php? ... 32&fromuid=3392
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-28 02:44 , Processed in 0.048652 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表