首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gwtupload:被附加的隐藏值

gwtupload:被附加的隐藏值
EN

Stack Overflow用户
提问于 2014-04-04 18:47:11
回答 3查看 123关注 0票数 0

我使用SingleUploader上传文件。我有几个隐藏的字段,我正在设置的开始上传。上传很好,但是当我再次上传时,旧的隐藏值不会被清除。相反,隐藏的值将被追加。SingleUploader#clear()似乎可以清除值,但它也从现有的表单中删除了发送Button

代码语言:javascript
复制
getView().getUploader().addOnStartUploadHandler(new IUploader.OnStartUploaderHandler() {

        @Override
        public void onStart(IUploader uploader) {
            if(validateForm()){
                String val1 = getView().getFirstFieldTxtBx().getValue().trim();
                String val2 = getView().getStartDateBx().getValue().toString();
                String val3 = getView().getEndDateBx().getValue().toString();

                uploader.add(new Hidden("first",val1), 0);
                uploader.add(new Hidden("second",val2),1);
                uploader.add(new Hidden("third",val3),2);
            }else{
                uploader.cancel();
            }
        }
    });

如何消除现有的隐藏值?或者是否有其他方法使用gwtupload将隐藏的值发送到服务器?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-04 19:01:36

使用isVisible()方法找出哪些组件需要清除。遍历所有的子级,并在此基础上明确值的可见性。

您只能在迭代所有子组件时使用instanceof Hidden来查找隐藏的组件。

阅读更多关于列出GWT中页面/面板的所有小部件的信息

票数 1
EN

Stack Overflow用户

发布于 2014-04-04 19:29:55

我想出了一个解决办法。我在完成和取消上传时调用clearFormFields方法。

代码语言:javascript
复制
private void clearFormFields(SingleUploader uploader) {
    removeWidget(((FlowPanel)uploader.getForm().getWidget()).getWidget(2));
    removeWidget(((FlowPanel)uploader.getForm().getWidget()).getWidget(1));
    removeWidget(((FlowPanel)uploader.getForm().getWidget()).getWidget(0));
}

private void removeWidget(Widget w) {
    if(w instanceof Hidden){
        w.removeFromParent();
    }
}
票数 0
EN

Stack Overflow用户

发布于 2014-04-05 18:03:12

您所描述的是库中的一个bug,uploader.clear()应该做这个工作,所以您不必手工完成它。

尽管打开一个问题,我会在下一个gwtupload版本中修复它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22870731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档