亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果前一個單元格具有值 HandsOnTable,如何創建將單元格更改為非活動狀態

如果前一個單元格具有值 HandsOnTable,如何創建將單元格更改為非活動狀態

holdtom 2023-09-28 16:21:24
我是 JavaScript 新手。我創建了一個包含單元格的表格,我們可以在其中添加值,并且我正在使用 HandsOnTable。我需要創建一個非活動單元格,如果前一個單元格有值,我們無法在 HandsOnTable 中的非活動單元格中設置值。這是我的代碼:<div id="downtimetable"></div><script script type="text/javascript" th:inline="javascript">    let dataFromSpringDown = [[${downtimes}]];    let dataObjDown = [];    let temp1 = {                        name: ' ',                        town: ' ',                        tent: ' ',                        izoterm: ' ',                        ref: ' '    }    for(let obj of dataFromSpringDown){        let object = {                        name: obj["name"],                        town: obj["town"],                        tent: obj["tent"],                        izoterm: obj["izoterm"],                        ref: obj["ref"]                    };    dataObjDown.push(object);    }    dataObjDown.push(temp);        let container2 = document.getElementById('downtimetable');        let hot2 = new Handsontable(container2, {          data: dataObjDown,          rowHeaders: true,          colHeaders: true,           autoWrapRow: true,            colHeaders: [    'Name',    'Town',    'Cost'  ],          manualRowMove: true,          manualColumnMove: true,          contextMenu: true,          filters: true,          dropdownMenu: true,          collapsibleColumns: true,          nestedHeaders : [          [           'Name',            'Town',            {            label: 'Cost',            colspan: 3            }           ],           [           '','','Tent','Izo','Ref'           ]           ],           manualColumnResize : true        });        function myFunctionDown() {            var json = JSON.stringify(dataObjDown);            var xhr = new XMLHttpRequest();            xhr.open("POST","/downtime_rows_json");            xhr.setRequestHeader("Content-Type","application/json");            xhr.send(json);        }    </script>這是一個用腳本創建的表:如果 cell1 有值,我需要將 cell2 中的狀態更改為非活動狀態,反之亦然。我怎樣才能做到這一點?
查看完整描述

2 回答

?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

如果單元格 1 有值,下面的代碼將禁用單元格 2 并刪除其值,反之亦然。換句話說:您不能在第 1 列和第 2 列中同時擁有值。


hot2.addHook( 'afterChange', function( changes, src ) {

  [

    [row, prop, oldVal, newVal] 

  ] = changes;

  if ( prop == 0 && hot2.getDataAtRowProp( row, prop + 1 ) && newVal?.length > 0 ) {

    // delete value of cell 2 if cell 1 has a value

    hot2.setDataAtCell( row, prop + 1, '' );

  } else if ( prop == 1 && hot.getDataAtRowProp( row, prop - 1 ) && newVal?.length > 0 ) {

    // delete value of cell 1 if cell 2 has a value

    hot2.setDataAtCell( row, prop -1, '' );

  }

})



hot2.updateSettings( {

   cells: function ( row, col, prop ) {

     cellProperties = {};


     if ( prop == 1 && hot2.getDataAtRowProp( row, prop - 1 ) ) {

       // this disables cell 2 if cell 1 has a value

       cellProperties.readOnly = true;

     } else if ( prop == 0 && hot2.getDataAtRowProp( row, prop + 1 ) ) {

       // this disables cell 1 if cell 2 has a value

       cellProperties.readOnly = true;

     } else {

       cellProperties.readOnly = false;

     }

     return cellProperties;

   }

})


查看完整回答
反對 回復 2023-09-28
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

它對我有用:


hot1.addHook('beforeRenderer', function(td, row, col, prop, value, cellProperties) {

            if (prop === 'name') {

               var cellMeta = this.getCellMeta(row, this.propToCol('town'));

               cellMeta.readOnly = (value != ' ' && value != '' && value != null) ? true : false;

           } if (prop === 'town') {

                var cellMeta = this.getCellMeta(row, this.propToCol('name'));

             cellMeta.readOnly = (value != ' ' && value != '' && value != null) ? true : false;

          } 

      });

您可以更改列名稱,它仍然有效


查看完整回答
反對 回復 2023-09-28
  • 2 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號