ExtJS - Создание гиперссылок с функцией - PullRequest
0 голосов
/ 16 декабря 2010

Я пытаюсь построить столбец редактирования, но моя процедура почему-то не совсем верна.Мое значение «store» не возвращает ничего, как я думал.

Есть мысли?

    function editLinkRenderer(value, metadata, record, rowIndex, colIndex, store) {
    if (store == V2020.ServiceStore)
        return '<a href="javascript:editServices(' + value + ')">Edit</a>';
    else if (store == V2020.PriceStore)
        return '<a href="javascript:editPrice(' + value + ')">Edit</a>';
    else if (store == V2020.PromoStore)
        return '<a href="javascript:editPromo(' + value + ')">Edit</a>';
    return "Edit";
}

Я использую его в своей сетке так:

{ header: "Edit", width: 60, dataIndex: 'serviceID', sortable: false, renderer: editLinkRenderer },

Ответы [ 2 ]

0 голосов
/ 16 декабря 2010

Я ценю, что вы посмотрели, но я выяснил проблему.

У меня было два V2020.ServiceStore, определенный по ошибке, и последний все испортил.

0 голосов
/ 16 декабря 2010

Вы можете рассмотреть возможность использования ActionColumn . Таким образом, вы можете сделать это:

var items = [ ... ]; // existing items
if (store.constructEditColumn) {
  items.push(store.constructEditColumn());
}

Где ваш constructEditColumn может выглядеть так:

...

constructEditColumn: function() {
  return {
    xtype: 'actioncolumn',
    items: {
      text: 'Edit',
      handler: function() {
        // do stuff
      },
      scope: this
    }
  }
},
...

Если бы не это, я бы с подозрением относился к равенству в магазинах. Эти два параметра перед store целыми числами? Можете ли вы установить точку останова и посмотреть, соответствует ли свойство record.store тому, что вы ожидаете? Может быть, старая версия Ext с другой подписью для рендерера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...