Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在添加具有重复id“FileULoader”FileUploader的元素_Javascript_File Upload_Sapui5 - Fatal编程技术网

Javascript 正在添加具有重复id“FileULoader”FileUploader的元素

Javascript 正在添加具有重复id“FileULoader”FileUploader的元素,javascript,file-upload,sapui5,Javascript,File Upload,Sapui5,我使用了两种视图。当我调用fileUploader时,错误就出现了 我必须使用id来标识fileloder控制器。获取输入文件信息 更新: createContent : function(oController) { var oFileUploader = new sap.ui.commons.FileUploader({ id: "FileULoader", //uploadUrl : "UploadFileServelet",

我使用了两种视图。当我调用fileUploader时,错误就出现了 我必须使用id来标识fileloder控制器。获取输入文件信息

更新:

createContent : function(oController) {

        var oFileUploader  = new sap.ui.commons.FileUploader({
            id: "FileULoader",
        //uploadUrl : "UploadFileServelet",   // URL to submit the form to
        name: "simpleUploader",          // name of the input type=file element within the form 
    //  uploadOnChange: true,           // immediately upload the file after selection
        buttonOnly: false,
        buttonText: "Upload"
        }).addStyleClass("downloadBtn");
        oFileUploader.attachUploadComplete(oController.doFileLoadComplete);  
    //var uploadBtn=new sap.ui.commons.buttons{this.creatId("upLoadFile"),}



    var oMatrix = new sap.ui.commons.layout.MatrixLayout({
        layoutFixed : true,
        width : '400px',
        columns : 1 });

    var text = new sap.ui.commons.TextView({text:"Confirm that the data will be wiped out once you upload new data file."});

    oMatrix.createRow(oFileUploader);
    oMatrix.createRow(text);

    var oDialog = new sap.ui.commons.Dialog({
        title:"FileUpload",
        resizable:false,
        modal:true,
        showCloseButton:true,
        contentBorderDesign:"Box",
        content:[
                 oMatrix   
        ],
        buttons:[
            new sap.ui.commons.Button({text:"Confirm", tooltip:"Confirm",press:function(e){oController.doFileUpload();oDialog.close();}}),
            new sap.ui.commons.Button({text:"Cancel", tooltip:"Cancle",press:function(e){oDialog.close();}}),
        ]
    });
    return oDialog;
这就是我使用片段的方式。但还是出了同样的错误;
@Allen Zhang

您提到您在两个视图中使用了该代码。不能使用相同id的Fileupload控件创建两次对话框。对不同的视图使用不同的id

更新:

为片段使用定义id:

_uploadCourse:function(){
    if (!this.dialogUploadFile) {
        this.dialogUploadFile = sap.ui.jsfragment("courseUP",
                "adminView.dialogUploadFile", this);
    }
    this.dialogUploadFile.open();
},
_uploadCourse : function() {

                    if (!this.dialogUploadFile) {
                        this.dialogUploadFile = sap.ui.jsfragment("certiUploadFile",
                                "adminView.dialogUploadFile", this);
                    }
                    this.dialogUploadFile.open();
                },

另请参见我关于和的回答。

是一个选项,您不使用id作为文件上载器控件,是否这样做

var oFileUploader  = new sap.ui.commons.FileUploader({
        id: this.createId("FileULoader"),
    //uploadUrl : "UploadFileServelet",   // URL to submit the form to
    name: "simpleUploader",     // name of the input type=file element within the form 
//  uploadOnChange: true,           // immediately upload the file after selection
    buttonOnly: false,
    buttonText: "Upload"
    }).addStyleClass("downloadBtn");
要访问它,您需要

createContent : function(oController) {
    this.oFileUploader = new sap.ui.commons.FileUploader({
其中view是两个视图之一的javascript句柄


-D

我试过这个,但没用。所以我创造了另一个片段来做这件事。我想知道有什么方法可以不通过id而通过类型或其他方式获得控件?请详细说明您的要求好吗?同一个片段被多个视图使用,您需要获得uploader控件?但当它具有id时。重复id错误退出。所以我的问题是:是否无论如何都要得到一个没有id的控制器?顺便问一句:有没有办法让片段成为Singleton?提前谢谢。嗨,使用时给片段一个id,并让上传者id为this.createIdFileULoader,此方法将为上传程序生成片段id前缀id。不幸的是,该问题被搁置,因此我无法发布答案,但要将片段作为一个单例使用,您可以按照所述方法执行。
createContent : function(oController) {
    this.oFileUploader = new sap.ui.commons.FileUploader({
view.oFileUploader