Sapui5 如何覆盖或更改OpenUI5面板分区id?

Sapui5 如何覆盖或更改OpenUI5面板分区id?,sapui5,Sapui5,我正在openui5中添加/删除面板节容器。删除选定的面板容器时,我可以执行此操作。但是在删除容器并再次添加新容器之后,我得到了“添加具有重复id txn_1的元素”的错误。如何解决这个问题 我正在使用以下代码: var Iconadd = new sap.ui.commons.Button({ //add container code text : "ADD", width:"65px", icon : "sap-icon://ad

我正在openui5中添加/删除面板节容器。删除选定的面板容器时,我可以执行此操作。但是在删除容器并再次添加新容器之后,我得到了“添加具有重复id txn_1的元素”的错误。如何解决这个问题

我正在使用以下代码:

      var Iconadd = new sap.ui.commons.Button({  //add container code
        text : "ADD",
        width:"65px",
        icon : "sap-icon://add",
        press : function() {



            var len=$('#panelcontainer .sapUiPanel').length;
            //alert("len"+len);
            Createnewtransaction(len+1);

            //alert(""+len);
            //var content=$("#panelcontainer").html();

            //$("#panelcontainer").append(content);
            //var length=$('#panelcontainer').length;
          // alert(""+length);

        }
    });

    Createnewtransaction(1);//onload defaultly one conatiner should show

    function Createnewtransaction(len){  //panel code and delete container code
    //alert("in"+len);          

    var oPanel3 = new sap.ui.commons.Panel("txn_"+len,{width: "100%", showCollapseIcon: false});


    oPanel3.setAreaDesign(sap.ui.commons.enums.AreaDesign.Fill);
    oPanel3.setBorderDesign(sap.ui.commons.enums.BorderDesign.None);

    oPanel3.setTitle(new sap.ui.core.Title({text:"Transaction Details"}));
    //oPanel3.setTitle(new sap.ui.core.Title({text:"Transaction Details"}));

    var oMatrix3 = new sap.ui.commons.layout.MatrixLayout({ width: '600px', columns: 8,width:"auto"});
    //oMatrix3.setWidths('150px', '200px','200px','170px','200px');
    oMatrix3.setWidths('150px','200px','200px','170px','200px','210px');
    oMatrix3.setLayoutFixed(true);


var oLabelmaterial = new sap.ui.commons.Label({text: 'Material:*'});

var oCustomserachmaterial = new sap.ui.commons.TextField({value: '', width: '88%'},{
    enabled:true,
    change:function(){

    }

});
oLabelmaterial.setLabelFor(oCustomserachmaterial);

 var oLabelinvoice = new sap.ui.commons.Label({text: 'Invoice Number:'});


 var oLabelText = new sap.ui.commons.TextField({value: '', width: '100%'});

 oLabelinvoice.setLabelFor(oLabelText);
      var oLabelInvoicedate = new sap.ui.commons.Label({text: 'Invoice Date:*'});


    // create a simple DatePicker
      var oDatePicker1 = new sap.ui.commons.DatePicker('');
      oDatePicker1.setWidth("170px");
    //  oDatePicker1.setYyyymmdd("20100101");
      oDatePicker1.setLocale("en-US"); // Try with "de" or "fr" instead!
      oDatePicker1.attachChange(
            function(oEvent){
                if(oEvent.getParameter("invalidValue")){
                    oEvent.oSource.setValueState(sap.ui.core.ValueState.Error);
                }else{
                    oEvent.oSource.setValueState(sap.ui.core.ValueState.None);
                }
            }
      );

      // attach it to some element in the page
      //oDatePicker1.placeAt("sample1");




    //oMatrix3.createRow(oLabelmaterial,oCustomserachmaterial,oLabelinvoice,oLabelText,oLabelInvoicedate,oDatePicker1,oLabelcurrency,oCustomserachcurrency,oLabelinvoiceline,oLabelInvoicelinetext,oLabelShipmentdate,oDatePicker2,oLabelunits,oCustomserachunits,oLabelAgreement,oCustomserachagreementnumber);
    oMatrix3.createRow(oLabelmaterial,oCustomserachmaterial,oLabelinvoice,oLabelText,oLabelInvoicedate,oDatePicker1);

     var oLabelcurrency = new sap.ui.commons.Label({text: 'Currency:*'});

      var oCustomserachcurrency = new sap.ui.commons.TextField({value: '', width: '88%'});

      oLabelcurrency.setLabelFor(oCustomserachcurrency);



     var oLabelinvoiceline = new sap.ui.commons.Label({text: 'Invoice Line Number:'});


     var oLabelInvoicelinetext= new sap.ui.commons.TextField({value: '', width: '100%'});

     oLabelinvoiceline.setLabelFor(oLabelInvoicelinetext);
          var oLabelShipmentdate = new sap.ui.commons.Label({text: 'Shipment Date:'});


        // create a simple DatePicker
          var oDatePicker2 = new sap.ui.commons.DatePicker('');
          oDatePicker2.setWidth("170px");
        //  oDatePicker1.setYyyymmdd("20100101");
          oDatePicker2.setLocale("en-US"); // Try with "de" or "fr" instead!
          oDatePicker2.attachChange(
                function(oEvent){
                    if(oEvent.getParameter("invalidValue")){
                        oEvent.oSource.setValueState(sap.ui.core.ValueState.Error);
                    }else{
                        oEvent.oSource.setValueState(sap.ui.core.ValueState.None);
                    }
                }
          );


    oMatrix3.createRow(oLabelcurrency,oCustomserachcurrency,oLabelinvoiceline,oLabelInvoicelinetext,oLabelShipmentdate,oDatePicker2);

     var oImage = new sap.ui.commons.Image();
        oImage.setSrc("icon:image/required_field_icon.png");
        oImage.setAlt("alternative image text for image");


     var oLabelunits = new sap.ui.commons.Label({text: 'Units:*'});
     var oCustomserachunits= new sap.ui.commons.TextField({value: '', width: '88%'});

     oLabelunits.setLabelFor(oCustomserachunits);

          var oLabelAgreement = new sap.ui.commons.Label({text: 'Agreement Number:'});

          var oLabelagreement = new sap.ui.commons.TextField({value: '', width: '100%'});

          oLabelAgreement.setLabelFor(oLabelagreement);

            //Create Search Field for Custom column search
        /*  var oCustomserachagreementnumber = new sap.ui.commons.SearchField("s9",{
                enableListSuggest:false,
                placeholder:"Search",
                width:"170px",
                serach:function(oEvent){

                }

            });*/

           var oLabelnone = new sap.ui.commons.Label({text: ''});
           var oLabelnone1 = new sap.ui.commons.Label({text: ''});  

            var deletebton=new sap.ui.commons.Button({
                text:"Delete",
                width:"70px",
                icon:"sap-icon://delete",
                //lite:true,
                press:function(oEvent){


                    if(!oPanel3.getCollapsed()){
                         oPanel3.setCollapsed(false);
                    }else{
                         oPanel3.setCollapsed(false);
                    }

                       var len=$('#panelcontainer .sapUiPanel').length;
                      // var headlen=$('#panelcontainer .sapUiPanel .sapUiPanelHdr').length;
                      // alert(len);
                       var selected=oPanel3.getId();

                        //   $('#panelcontainer .sapUiPanel').not( "#txn_1" ).remove();

                       if(len==1){

                           $("#"+selected).not("#txn_1").remove();
                       }else{

                       $("#"+selected).remove();
                       }
                       var splitdata=selected.split('_');
                       var delposition=parseInt(splitdata[1]);
                      // alert(delposition);

                       $('#panelcontainer .sapUiPanel').each(function(i, obj) {
                           //alert("i22"+i);
                           var i=i+1;

                           if(delposition >= i  )
                           {
                               var newid=splitdata[0]+"_"+i;
                              $(this).attr("id", newid);
                              $(this).attr("data-sap-ui", newid);
                              $(this).attr("aria-labelledby",newid+"-title");
                              $(this).attr("aria-describedby",newid+"-acc");

                           }
                        });

                       $('#panelcontainer .sapUiPanel .sapUiPanelHdr').each(function(i, obj) {
                           //alert("i22"+i);
                           var i=i+1;

                           if(delposition >= i  )
                           {
                               var newid=splitdata[0]+"_"+i;
                               $(this).attr("id",newid+"-hdr");

                           }
                        });
                       $('#panelcontainer .sapUiPanel .sapUiPanelHdr .sapUiPanelTitle').each(function(i, obj) {
                           //alert("i22"+i);
                           var i=i+1;

                           if(delposition >= i  )
                           {
                               var newid=splitdata[0]+"_"+i;
                               $(this).attr("id",newid+"-title");

                           }
                        });

                       $('#panelcontainer .sapUiPanel .sapUiPanelHdr .sapUiPanelTb ').each(function(i, obj) {
                           //alert("i22"+i);
                           var i=i+1;

                           if(delposition >= i  )
                           {
                               var newid=splitdata[0]+"_"+i;
                               $(this).attr("id",newid+"-tb");

                           }
                        });

                       $('#panelcontainer .sapUiPanel .sapUiPanelCont').each(function(i, obj) {
                           //alert("i22"+i);
                           var i=i+1;

                           if(delposition >= i  )
                           {
                               var newid=splitdata[0]+"_"+i;
                               $(this).attr("id",newid+"-cont");

                           }
                        });


                       /*for(i;i<len;i++){

                           var newid=splitdata[0]+"_"+i;
                           var j = i+1;
                           var oldID = splitdata[0]+"_"+j;

                           $("#"+oldID).css({"border-color":"red","border-width":"1px","border-style":"solid"});

                           $("#"+selected).attr("id",newid);


                       }*/

                    //$(this).parent().remove();
                    // dispAlert() ;
                }
            }).addStyleClass("datacheck");
            //deletebton.addStyleClass("deletedata");
            //oPanel3.addButton(deletebton);

            oPanel3.onAfterRendering = function() {
          if (sap.ui.commons.Panel.prototype.onAfterRendering) {
            sap.ui.commons.Panel.prototype.onAfterRendering.apply(this, arguments);
          }
          var $this = this.$();
          var span = $this.find('.sapUiPanelIco');
          span.detach();
          $this.find('.sapUiPanelHdr').append(span);

        };

            oMatrix3.createRow(oLabelunits,oCustomserachunits,oLabelAgreement,oLabelagreement,oLabelnone,deletebton);





    oPanel3.addContent(oMatrix3);

    oPanel3.placeAt("panelcontainer");
    }
var Iconadd=new sap.ui.commons.Button({//add container code
文本:“添加”,
宽度:“65px”,
图标:“sap-icon://add",
按:函数(){
var len=$('#panelcontainer.sapUiPanel').length;
//警报(“len”+len);
Createnewtransaction(len+1);
//警报(“+len”);
//var content=$(“#panelcontainer”).html();
//$(“#panelcontainer”)。追加(内容);
//变量长度=$('#panelcontainer')。长度;
//警报(“+”长度);
}
});
创建新事务(1)//onload默认情况下应显示一个conatiner
函数Createnewtransaction(len){//面板代码和删除容器代码
//警报(“in”+len);
var oPanel3=新的sap.ui.commons.Panel(“txn_”+len,{width:“100%”,showclappseicon:false});
oPanel3.setAreaDesign(sap.ui.commons.enums.AreaDesign.Fill);
setBorderDesign(sap.ui.commons.enums.BorderDesign.None);
setTitle(新的sap.ui.core.Title({text:“Transaction Details”}));
//setTitle(新的sap.ui.core.Title({text:“Transaction Details”}));
var oMatrix3=new sap.ui.commons.layout.MatrixLayout({width:'600px',columns:8,width:'auto});
//oMatrix3.设置宽度('150px','200px','200px','170px','200px');
oMatrix3.设置宽度('150px'、'200px'、'200px'、'170px'、'200px'、'210px');
oMatrix3.setLayoutFixed(真);
var olabelmatterial=new sap.ui.commons.Label({text:'Material:'});
var oCustomserachmaterial=new sap.ui.commons.TextField({value:'',width:'88%'){
启用:对,
更改:函数(){
}
});
oLabelmaterial.setLabelFor(OcustomerachMaterial);
var oLabelinvoice=new sap.ui.commons.Label({text:'发票号:'});
var oLabelText=new sap.ui.commons.TextField({value:'',width:'100%});
oLabelinvoice.setLabelFor(oLabelText);
var oLabelInvoicedate=new sap.ui.commons.Label({text:'发票日期:'});
//创建一个简单的日期选择器
var oDatePicker1=新的sap.ui.commons.DatePicker(“”);
oDatePicker1.设定宽度(“170px”);
//oDatePicker1.setYyyymmdd(“20100101”);
oDatePicker1.setLocale(“en-US”);//改为使用“de”或“fr”!
oDatePicker1.attachChange(
功能(oEvent){
if(oEvent.getParameter(“invalidValue”)){
oEvent.oSource.setValueState(sap.ui.core.ValueState.Error);
}否则{
oEvent.oSource.setValueState(sap.ui.core.ValueState.None);
}
}
);
//将其附加到页面中的某个元素
//oDatePicker1.地点(“样本1”);
//oMatrix3.createRow(OLABELMATERY、OCUSTOMSERACHTERY、oLabelText、oLabelInvoicedate、oDatePicker1、OLABELCURRENY、OCUSTOMSERACURENY、OLABELINVOICELINEXT、oLabelShipmentdate、oDatePicker2、oLabelunits、OCUSTOMSERACHARGENT、OCUSTOMSERACHARGENT编号);
oMatrix3.createRow(OLABELMATERY、OCUSTOMSERACHMATERY、oLabelinvoice、oLabelText、oLabelInvoicedate、oDatePicker1);
var oLabelcurrency=new sap.ui.commons.Label({text:'Currency:'});
var oCustomserachcurrency=new sap.ui.commons.TextField({value:'',width:'88%});
oLabelcurrency.setLabelFor(oCustomserachcurrency);
var oLabelinvoiceline=new sap.ui.commons.Label({text:'发票行号:'});
var oLabelInvoicelinetext=new sap.ui.commons.TextField({value:'',width:'100%});
oLabelinvoiceline.setLabelFor(Olabelinvoicelineext);
var oLabelShipmentdate=new sap.ui.commons.Label({text:'装运日期:'});
//创建一个简单的日期选择器
var oDatePicker2=新的sap.ui.commons.DatePicker(“”);
oDatePicker2.设定宽度(“170px”);
//oDatePicker1.setYyyymmdd(“20100101”);
oDatePicker2.setLocale(“en-US”);//请改为使用“de”或“fr”!
oDatePicker2.attachChange(
功能(oEvent){
if(oEvent.getParameter(“invalidValue”)){
oEvent.oSource.setValueState(sap.ui.core.ValueState.Error);
}否则{
oEvent.oSource.setValueState(sap.ui.core.ValueState.None);
}
}
);
oMatrix3.createRow(oLabelcurrency、oCustomserachcurrency、oLabelinvoiceline、oLabelInvoicelinetext、oLabelShipmentdate、oDatePicker2);
var oImage=new sap.ui.commons.Image();
setSrc(“icon:image/required_field_icon.png”);
setAlt(“图像的替代图像文本”);
var oLabelunits=new sap.ui.commons.Label({text:'Units:'});
var oCustomserachunits=new sap.ui.commons.TextField({value:'',width:'88%});
oLabelunits.setLabelFor(OcustomerachUnits);
var olabeagreement=new sap.ui.commons.Label({text:'协议号:'});
var olabeagreement=new sap.ui.commons.TextField({value:'',width:'100%});
oLabelAgreement.setLabelFor(oLabelAgreement);
//为自定义列搜索创建搜索字段
/*var oCustomserachagreementnumber=new sap.ui.commons.SearchField(“s9”{
enableListSuggest:false,
占位符:“搜索”,
宽度:“170px”,
serach:功能(oEvent){
}
});*/
var oLabelnone=new sap.ui.commons.Label({text:'});
var oLabelnone1=新的sap.ui.commons.Label({text:'});
var deletebton=new sap.ui.commons.Button({
文本:“删除”,
宽度:“70px”,
图标:“sap-icon://delete",
//l