Javascript 正在添加具有重复id“FileULoader”FileUploader的元素
我使用了两种视图。当我调用fileUploader时,错误就出现了 我必须使用id来标识fileloder控制器。获取输入文件信息 更新: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",
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