Как получить имя столбца из выбора строк в сетке ExtJS? - PullRequest
2 голосов
/ 19 августа 2009

У меня есть настройка extjs gridpanel, и я хочу иметь возможность делать что-то, основываясь на том, что пользователь нажимает на текст или значки в сетке. Например, отфильтруйте сетку, если пользователь щелкает (или дважды щелкает) слово в столбце, или отображайте всплывающее окно, если пользователь нажимает на значок. Я могу легко получить строку, по которой они щелкнули, и значения по имени столбца из этой строки, но я не знаю, по какому столбцу щелкнули.

В качестве альтернативы, я мог бы добавить onClick ко всей сетке, чтобы затем получить отдельный текст из строки / столбца, но я не знаю, к какому индексу строки или столбцу принадлежит это значение. Я мог бы добавить класс CSS, который бы сообщал мне имя столбца, но это похоже на хак.

Есть ли что-нибудь встроенное, что может сделать это?

Ответы [ 3 ]

7 голосов
/ 20 августа 2009

Событие "cellclick" на сетке - это путь. Функция, прослушивающая это событие, передается:

  • ( Grid this, Number rowIndex, Number columnIndex, Ext.EventObject e )

Если вы хотите получить текст gridCell, вызов yourGrid.getView().getCell(rowIndex, colIndex) вернет элемент DOM.

Если вы хотите получить заголовок столбца, позвоните: yourGrid.getColumnModel(). getColumnHeader(colIndex)

Если вы хотите узнать что-то еще о конкретном столбце, позвоните yourGrid.getColumnModel(). getColumnAt(colIndex)

1 голос
/ 03 сентября 2009

Я думаю, что если вы заинтересованы в событиях по столбцам, выбор строки - это неправильное событие, чтобы посмотреть на него. Как предположил Джошуа, событие cellclick станет событием, на которое вам нужно обратить внимание.

Это событие может дать dataIndex столбца, как указано

var fieldName = grid.getColumnModel().getDataIndex(columnIndex); 
0 голосов
/ 22 августа 2009

Пожалуйста, посмотрите на пример edit-grid.html для рендеринга флажков и обработки событий.

...