Обработка события изменения для нумерации страниц в dojo gridx

Я использую додзё gridx1.3. В моем приложении много данных, поэтому я использую разбиение на страницы (несколько страниц) в файле gridx.

Я пытаюсь обработать события страницы изменения и выделить определенный текст, меняющий цвет.

1. Обработать событие изменения страницы. 2.Проверьте каждое значение во всех ячейках. 3. Измените цвет текста, если он соответствует условию.

Следующий образец может реализовать мое требование. Есть ли эффективный способ обработки события изменения страницы и изменения цвета текста.

<script type="text/javascript">
//<![CDATA[
window.onload = function () {
  function setColorFunc() {
    var ele = document.getElementsByClassName("gridxBody")[0].getElementsByTagName("td");
    var chktxt, sp;

    for(var i = 0; i < ele.length; i++) {
      chktxt = ele[i].textContent;
      sp = Number(chktxt.split("-")[1]);
      if(sp % 3 == 0) {
        ele[i].classList.add("colorRed");
      }
    }
  }

  var tableBody = document.getElementsByClassName("gridxBody")[0];

  tableBody.addEventListener("DOMSubtreeModified", setColorFunc);

};
//]]>
</script>

Я слышал, что DOMSubtreeModified устарел.


person Masahisa Moriya    schedule 20.11.2015    source источник


Ответы (1)


Я нашел способ обработки события смены страницы в разбивке на страницы dojo.gridx. pagination.onSwitchPage может обработать это событие. Пожалуйста, обратитесь к следующему коду.

require([
    'dojo/parser',
    'gridx/tests/support/data/MusicData',
    'gridx/tests/support/stores/Memory',
    'gridx/Grid',
    'gridx/core/model/cache/Sync',
    'gridx/allModules',
    'dojo/domReady!'
], function(parser, dataSource, storeFactory){

    store = storeFactory({
        dataSource: dataSource,
        size: 100
    });

    layout = dataSource.layouts[7];

    first = function(){
        grid1.pagination.gotoPage(0);
    };
    last = function(){
        grid1.pagination.gotoPage(grid1.pagination.pageSize() - 1);
    };
    prev = function(){
        grid1.pagination.gotoPage(grid1.pagination.currentPage() - 1);
    };
    next = function(){
        grid1.pagination.gotoPage(grid1.pagination.currentPage() + 1);
    };

    parser.parse();

    orgEv = grid2.pagination.onSwitchPage;
    grid2.pagination.onSwitchPage = function() {
        orgEv();
        alert("switchPage");
    };
});
person Masahisa Moriya    schedule 29.11.2015