当前位置: 首页 > 知识库问答 >
问题:

即使禁用上载组件,单击后仍会打开对话

穆招
2023-03-14

我正在使用Vaadin框架开发一个web应用程序。

我正在使用Vaadin上传组件。为了方便起见,我们决定在文件已经上传到服务器时禁用上传按钮。

问题是,这个按钮看起来是禁用的,但点击它时,它仍然会打开文件浏览器对话,让用户指定无法正确处理的其他文件。

   //The first listener triggered when starting an upload, here the 
   // Upload component is set to disabled
    upload.addListener(new Upload.StartedListener() {
                public void uploadStarted(StartedEvent event) {
                    // this method gets called immediately after upload is started

                    upload.setEnabled(false);
    }

    // Listener being triggered a number of times during the upload. 
    // Here is where I debugged, saw that the Upload component was 
    // disabled but found that I still could open the dialogue. 
            upload.addListener(new Upload.ProgressListener() {
                public void updateProgress(long readBytes, long contentLength) {

    }

    // The last listener triggered, here the Upload component is 
    // set to enabled. The button now looks clickable but it behaves 
    // the same way as it does when the Upload component is disabled.
    upload.addListener(new Upload.FinishedListener() {
                public void uploadFinished(FinishedEvent event) {
                    if(uploadOk){
                        fileListItem.getProgressIndicator().stopPolling();
                        fileListItem.removeProgressIndicator();
                        fileListItem.removeAbortButton();
                        submitFilesBt.setEnabled(true);
                        removeFilesBt.setEnabled(true);
                        fileListItem.setFile(counter.getFile());
                        upload.setEnabled(true);                }
                }
            });

共有1个答案

范鸿畅
2023-03-14

我从未设法解决组件的问题,但我通过将上载组件放在一个专用容器中解决了这个问题。当我启动上传时,我从容器中移除了组件,而是插入了一个虚拟的replace按钮,该按钮看起来相同,但已被禁用。上传完成后,我删除了虚拟按钮,并再次添加了上传按钮。

使用这种方法可以避免这个问题,但如果有人认为这是一个相当粗略的解决问题的方法,我会同意。

 类似资料:
  • 问题内容: 首先,我尝试编写一些类似于以下代码的代码: 获取SettingWithCopyWarning之后,我尝试使用.loc: 但是,我仍然收到相同的警告。是什么赋予了? 问题答案: 注意:自大熊猫0.24版本起,已弃用该版本,并将在以后的版本中将其删除。当private属性存在时,下划线表示该属性不是公共API的一部分,因此不应依赖于此属性。因此,展望未来,沉默的唯一正确方法似乎是在全球范围

  • 问题内容: 接下来的代码使用Modal react组件: 我正在尝试使用以下方式调用它: 和 我的意思是,单击此按钮后,没有任何显示。还有另一种方法可以调用该模式吗?我从以下位置导入模式: 从“反应-响应-模态”导入模态 问题答案: 您试图仅在单击按钮后才渲染模态,这对于非反应性环境是很自然的,但在反应中它以不同的方式起作用。在最简单的解决方案中,应始终呈现,当用户单击按钮时,将modal 属性更

  • 我有一个按钮(CustomDilaog活动),当点击显示自定义对话框和密码编辑文本,确定按钮和取消按钮时,如果你输入正确的密码,它会打开另一个活动(文本活动),直到现在一切正常, 我有两个部分的问题。 第一部分:当我在(文本活动)并按后退按钮返回(CustomDilaog活动)时,仍然对话框显示在它上面,如何让它关闭 第二部分:对话框启动后,如果我不写密码,只需单击“确定”按钮,edittext为

  • 问题内容: 我正在尝试实施以下测试方案: 单击页面上的徽标 断言有一个新的浏览器窗口打开(Chrome中的选项卡)并检查当前URL 问题在于,在新浏览器窗口中打开的页面 是非角度页面, 而我正在执行单击操作的 主页 是 角度页面 。 这是我的第一次尝试: 失败与: 错误:等待量角器与页面同步时出错:“在窗口中找不到角度” 这是可以理解的。 我的第二次尝试是使用布尔标志: 实际上,这使该特定测试通过

  • 问题内容: 我正在使用 selenium2 beta 。我试图单击按钮,这将打开文件附件对话框。但是当我单击它时,什么也没有发生。 仅使用selenium而不是selenium2我可以轻松单击它。 问题答案: 我猜问题只是在使用Internet Explorer时出现,因为IE和FF处理文件输入略有不同:在FF中,您可以单击按钮或字段以调用“打开”对话框,而在IE中,您可以单击按钮或 双击单击 该

  • 问题内容: 我有一个带有3个EditText的对话框,可用来获取ftp地址,用户名和密码。我使用.setNeutralButton创建一个“测试连接”按钮。我设法将其连接到ftp并显示结果吐司,但我不希望“测试按钮”关闭对话框。在连接测试期间如何保持对话框打开? 问题答案: 据我所知,不扩展类是不可能的。但是,使用您拥有的功能,将其单独放置并使用可能会更容易,更好。您所要做的就是为此将代码放入新代