#javascript #jquery #reactjs #datatables
#javascript #jquery #reactjs #таблицы данных
Вопрос:
Я использую datatables.net таблица внутри приложения React. Я хочу знать, как я могу создать всплывающую подсказку в заголовке столбца «Эффективный год постройки».
componentDidMount() {
this.setupTable(this.props.data);
}
setupTable(data) {
this.$el = $(this.el);
this.$el.DataTable(
{
alternatingRowStyle: true,
sort: 'enable'
data: data,
"oLanguage": {
"sSearch": "Search"
},
columns: [
{
"title": "Parcel ID",
mData: "ParcelID"
},
{
"title": "Land Value",
mData: "TotalLandValue",
render: $.fn.dataTable.render.number(',', '', 0, '$')
},
{
"title": "Effective Year Built",
mData: "effectiveyearbuilt"
}
]
}
)
}
Я перепробовал несколько решений, но безрезультатно. Похоже, я также не могу пометить уникальный идентификатор в этой конкретной ячейке? Спасибо за любую помощь.
Комментарии:
1. Я использовал таблицы данных с React и добавил стили к столбцам, указав имя класса в определении столбца. Возможно, вы могли бы указать имя класса, а затем использовать CSS для всплывающей подсказки согласно w3schools.com/css/css_tooltip.asp .
2. Спасибо, Крис, вот как я это исправил 🙂 — «title»: «<span class=’d-inline-block’ tabindex=’0′ data-toggle=’tooltip’ title=’Предполагаемый эффективный возраст улучшения.’> Эффективный год постройки</span>»,
Ответ №1:
Если вам нужно присвоить атрибут ( id
, в вашем случае) вашему узлу заголовка столбца, вы можете сделать это с помощью чего-то вроде:
$(dataTable.column(2).header()).attr('id', '/* some id here */');
где DataTable — это переменная, возвращаемая DataTable()
конструктором
Комментарии:
1. Спасибо, Евгений, я изменил узел заголовка столбца, добавив в «title»: «<span class=’d-inline-block’ tabindex=’0′ data-toggle=’tooltip’ title=’Предполагаемый эффективный возраст улучшения.’> Эффективный год постройки</span>»
Ответ №2:
В зависимости от ваших потребностей, вам может быть полезно использовать пакет, подобный react-table
(react-table) — я использовал это раньше в проекте, и это работает действительно хорошо. Вы можете определять пользовательские визуализируемые компоненты, для которых вы можете просто пойти и взять другой пакет react-tooltip
(react-tooltip).
Я считаю, что немного проще работать с пакетами узлов, специфичными для React, вместо того, чтобы использовать библиотеки JS, где это возможно.
Комментарии:
1. Да, я полностью согласен и знаю, что мне не следует смешивать jQuery с React, поскольку необходимо проявлять большую осторожность, чтобы разделить таблицы DOM и React’s DOM. К сожалению, это было обязательным требованием.