找回密码
 立即注册

QQ登录

只需一步,快速开始

nutstore
金牌服务用户   /  发表于:2021-8-18 09:29  /   查看:4334  /  回复:11
1金币
从一个较少数据的ODataVirtualCollectionView的切换到一个较多数据的后,无法从自动发送请求导致页面空白
  1.   const oDataView = new wjcOData.ODataVirtualCollectionView(
  2.       `/task/api/odata-report/${templateId}`,
  3.       'data',
  4.       {
  5.         oDataVersion: 4.0,
  6.         sortOnServer: true,
  7.         filterOnServer: true,
  8.         groupDescriptions: cache,
  9.         loaded: () => {
  10.           setIsDataEmpty(oDataView.isEmpty)
  11.         },
  12.       },
  13.     )

  14.     setTemplate(template)
  15.     setColSchemas([...settledColSchemas, ...colSchemasFromServer])
  16.     setData(oDataView)
复制代码
  1.   useEffect(() => {
  2.     // 每次模板变更都清除 ticketId 使详情模块隐藏
  3.     setData(null)
  4.     void getData()
  5.   }, [getData])
复制代码
  1.   const onFlexGridInitialized = useCallback(
  2.     async (flexGrid: wjcGrid.FlexGrid) => {
  3.       setFlexGrid(flexGrid)

  4.       // oDataVirtualCollectionView 懒加载需要在滚动时动态检测应该加载哪些数据
  5.       flexGrid.scrollPositionChanged.addHandler(() => {
  6.         const rng = flexGrid.viewRange
  7.         data?.setWindow(rng.topRow, rng.bottomRow)
  8.       })
  9.     },
  10.     [teaSvc, accountSvc, data, setFlexGridFilter],
  11.   )
复制代码
  1.         <wjGrid.FlexGrid
  2.               key={templateId}
  3.               initialized={onFlexGridInitialized}
  4.               itemsSource={data}
  5.               frozenColumns={1}
  6.               alternatingRowStep={0}
  7.               selectionMode={'Row'}
  8.               isReadOnly={true}
  9.               headersVisibility={'Column'}
  10.               allowSorting={'MultiColumn'}
  11.             >
复制代码


11 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-18 10:24:29
沙发
本帖最后由 Richard.Ma 于 2021-8-18 14:12 编辑

没有重现您的问题,我不确定你这边切换ODataVirtualCollectionView具体是如何做的
我这边按照下面的demo进行了修改,加入了按钮来修改ODataVirtualCollectionView,来对此ODataVirtualCollectionView的数据进行修改,按钮事件中的代码如下
https://demo.grapecity.com.cn/wi ... /VirtualOData/react

  1.         this.state.virtualOrderDetails=new wjcOData.ODataVirtualCollectionView("https://services.odata.org/V4/Northwind/Northwind.svc", "Order_Details", {
  2.                 loaded: (sender, e) => {
  3.                     this.setState({
  4.                         totalItemCount: wjcCore.format("{totalItemCount:n0} items", sender)
  5.                     });
  6.                 }
  7.             });
复制代码


我不确定您这边切换ODataVirtualCollectionView是如何做的,建议直接上传一个demo上来重现问题,我来协助您查找一下原因



回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2021-8-18 15:02:39
板凳
Richard.Ma 发表于 2021-8-18 10:24
没有重现您的问题,我不确定你这边切换ODataVirtualCollectionView具体是如何做的
我这边按照 ...

我晚些时候上传一个demo过来
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-18 15:48:18
地板
好的
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2021-8-18 17:13:38
5#
Richard.Ma 发表于 2021-8-18 10:24
没有重现您的问题,我不确定你这边切换ODataVirtualCollectionView具体是如何做的
我这边按照 ...

demo复现

在这个demo里面bug复现了
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-18 18:06:49
6#
收到,我这边测试一下看看
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2021-8-19 13:27:10
7#
Richard.Ma 发表于 2021-8-18 18:06
收到,我这边测试一下看看

是否有解决方案了
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-19 15:14:07
8#
您好,目前测试到的结果和您说的一样,在切换到大数据时,初始加载正常,但是滚动后无法更新页面。
这个猜测可能还是代码问题,暂时还未找出原因,我这边会和研发再沟通一下,然后给您回复
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2021-8-23 11:06:33
9#
Richard.Ma 发表于 2021-8-19 15:14
您好,目前测试到的结果和您说的一样,在切换到大数据时,初始加载正常,但是滚动后无法更新页面。
这个猜 ...

这个问题什么时候可以修复呢,比较影响功能开发了
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-23 12:12:23
10#
非常抱歉,看了一下目前此问题研发还在验证原因,由于研发同事在美国那边。我今天会邮件再确认一下进度,明天给您回复
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部