找回密码
 立即注册

QQ登录

只需一步,快速开始

威龙干红

注册会员

4

主题

12

帖子

40

积分

注册会员

积分
40
最新发帖
威龙干红
注册会员   /  发表于:2022-5-10 16:02  /   查看:3667  /  回复:11
本帖最后由 威龙干红 于 2022-5-17 14:18 编辑

页面中有个按钮存在倒计时,excel就会每秒刷新,使得下拉框无法选中。 image.png161696471.png

11 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-5-10 17:25:19
沙发
你好,请问上述的“刷新”是指调用refresh接口吗?另外,请问为什么需要“每秒刷新”这个操作呢?这边根据上面的描述未能复现此问题,建议提供对应的demo,这边来做进一步调研。
回复 使用道具 举报
威龙干红
注册会员   /  发表于:2022-5-10 17:37:38
板凳
1652175309(1).jpg445572204.png      页面中有个倒计时来更新按钮文本,有这个倒计时excel下拉框很难选中。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-5-10 18:18:45
地板
威龙干红 发表于 2022-5-10 17:37
页面中有个倒计时来更新按钮文本,有这个倒计时excel下拉框很难选中。

这边没看明白这个具体是怎么刷新,刷新了什么按钮。为了更加准确高效解决此问题,建议提供一个能复现的demo,这边来做进一步调研。这边也提供了一个demo模板,可以尝试在此demo中复现。

demo模板.html

2.57 KB, 下载次数: 151

回复 使用道具 举报
威龙干红
注册会员   /  发表于:2022-5-11 14:01:17
5#
  1. import React, { useState, useEffect } from 'react';
  2. import '@grapecity/spread-sheets-resources-zh';
  3. import GC from '@grapecity/spread-sheets';
  4. import '@grapecity/spread-sheets-print';
  5. import '@grapecity/spread-sheets/styles/gc.spread.sheets.excel2013white.css';
  6. import { SpreadSheets, Worksheet } from '@grapecity/spread-sheets-react';

  7. const Demo = () => {
  8.   let timer = null;
  9.   const [time, setTime] = useState(3600);

  10.   useEffect(() => {
  11.     timeTransition();
  12.   }, []);

  13.   const timeTransition = () => {
  14.     clearInterval(timer);
  15.     timer = setInterval(() => setTime(t => --t), 1000);
  16.   };

  17.   const workbookInit = (spread) => {
  18.     const sheet = spread.getActiveSheet();
  19.     const spreadNS = GC.Spread.Sheets;
  20.     const gcdv = spreadNS.DataValidation;
  21.     let ddv = null;
  22.     ddv = gcdv.createListValidator('1,2,3');
  23.     ddv.inputTitle('Please choose a category:');
  24.     ddv.inputMessage('1, 2, 3');
  25.     ddv.inCellDropdown(true);
  26.     sheet.setDataValidator(0, 0, 1, 1, ddv);
  27.   };

  28.   const hostStyle = {
  29.     width: '100%',
  30.     height: '100%'
  31.   };

  32.   return (
  33.     <div style={{ width: '100vw', height: '100vh' }}>
  34.       <div>{time}</div>
  35.       <SpreadSheets
  36.         hostStyle={hostStyle}
  37.         workbookInitialized={(e) => {
  38.           workbookInit(e);
  39.         }}
  40.       >
  41.         <Worksheet />
  42.       </SpreadSheets>
  43.     </div>
  44.   );
  45. };

  46. export default Demo;
复制代码

1652248692.jpg185987242.png
这段代码需要在react项目中运行,这个数据校验框难以选中。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-5-11 18:14:25
6#
威龙干红 发表于 2022-5-11 14:01
这段代码需要在react项目中运行,这个数据校验框难以选中。

请问为什么需要每秒做一次更新呢?如果是刷新了页面,那么下拉会自动关闭,属于产限制,没有更好的方法。
回复 使用道具 举报
威龙干红
注册会员   /  发表于:2022-5-11 18:24:10
7#
本帖最后由 威龙干红 于 2022-5-11 18:25 编辑
Derrick.Jiao 发表于 2022-5-11 18:14
请问为什么需要每秒做一次更新呢?如果是刷新了页面,那么下拉会自动关闭,属于产限制,没有更好的方法。

因为页面里有倒计时,这个暂时没法解决是吧,我看用原生是没有这个问题的。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-5-11 18:35:15
8#
威龙干红 发表于 2022-5-11 18:24
因为页面里有倒计时,这个暂时没法解决是吧,我看用原生是没有这个问题的。

是的,这个是框架的限制。这边也会尝试去调研看下有无其他方案。
回复 使用道具 举报
威龙干红
注册会员   /  发表于:2022-5-11 18:44:52
9#
Derrick.Jiao 发表于 2022-5-11 18:35
是的,这个是框架的限制。这边也会尝试去调研看下有无其他方案。

好的,感谢
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-5-12 09:11:20
10#

看这个倒计时部分,咱们应该做的是类似考试系统的项目是吗?可以考虑局部去刷新倒计时部分。
image.png987189941.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部