В моей таблице ANTD я добавил столбец. Но при изменении размера случайные клики запускают сортировщик колонны, что не очень хорошо. Я пытался ограничить сортировку, щелкните только встроенный значок сортировки таблицы ANTD. Но не работает. < /P>
Так подумал о создании полного заголовка таблицы пользовательской таблицы. Но требуемые клики на самом деле не запускаются при щелчке. Нужно глобальное решение из-за существующих названий столбцов.const ResizableTableTitle = ({...}) => {
const {
title,
sorter,
sortOrder = 'descend',
sortDirections,
onHeaderCell,
} = column || {};
const isSortable = !!sorter;
if (!width || disableResize) {
return ;
}
const renderSorter = () => {
if (!isSortable) return null;
return (
console.log('render sorter parent span')} //
);
};
const content = (
className="ant-table-column-sorters"
style={{...}}
onClick={() => console.log('Header clicked')} //
{typeof title === 'function' ? title() : title}
{renderSorter()}
);
return (
(
role="button"
tabIndex={0}
ref={ref}
className={`handle-${handleAxis}`}
style={{
position: 'absolute',
zIndex: 1,
cursor: 'ew-resize',
userSelect: 'none',
...
}}
>
)}
onResize={onResize}
onResizeStop={onResizeStop}
draggableOpts={{
enableUserSelectHack: true,
disabled: disableResize,
grid: [10, 0], // Adjust grid size as needed
}}
axis="x"
resizeHandles={['e']}
>
{content}
);
};
< /code>
Здесь происходит только упомянутый журнал консоли. Другие не < /p>
Ниже приводит часть компонента общей таблицы < /p>
const updatedColumnData = useMemo(() => {
if (columnResizeDisable) {
return columnData;
}
return columnData.map((column) => {
...
return {
...column,
sorter: false,
width: finalWidth,
onHeaderCell: () => ({
column,
width: finalWidth,
onResize: handleResize(column.dataIndex),
onResizeStop: handleSaveResize(column.dataIndex),
disableResize,
}),
};
});
}, [...]);
return (
)
Подробнее здесь: https://stackoverflow.com/questions/796 ... -sort-icon
Ограничить сортировка Нажмите на значок таблицы ANTD ⇐ Javascript
Форум по Javascript
-
Anonymous
1750325459
Anonymous
В моей таблице ANTD я добавил столбец. Но при изменении размера случайные клики запускают сортировщик колонны, что не очень хорошо. Я пытался ограничить сортировку, щелкните только встроенный значок сортировки таблицы ANTD. Но не работает. < /P>
Так подумал о создании полного заголовка таблицы пользовательской таблицы. Но требуемые клики на самом деле не запускаются при щелчке. Нужно глобальное решение из-за существующих названий столбцов.const ResizableTableTitle = ({...}) => {
const {
title,
sorter,
sortOrder = 'descend',
sortDirections,
onHeaderCell,
} = column || {};
const isSortable = !!sorter;
if (!width || disableResize) {
return ;
}
const renderSorter = () => {
if (!isSortable) return null;
return (
console.log('render sorter parent span')} //
);
};
const content = (
className="ant-table-column-sorters"
style={{...}}
onClick={() => console.log('Header clicked')} //
{typeof title === 'function' ? title() : title}
{renderSorter()}
);
return (
(
role="button"
tabIndex={0}
ref={ref}
className={`handle-${handleAxis}`}
style={{
position: 'absolute',
zIndex: 1,
cursor: 'ew-resize',
userSelect: 'none',
...
}}
>
)}
onResize={onResize}
onResizeStop={onResizeStop}
draggableOpts={{
enableUserSelectHack: true,
disabled: disableResize,
grid: [10, 0], // Adjust grid size as needed
}}
axis="x"
resizeHandles={['e']}
>
{content}
);
};
< /code>
Здесь происходит только упомянутый журнал консоли. Другие не < /p>
Ниже приводит часть компонента общей таблицы < /p>
const updatedColumnData = useMemo(() => {
if (columnResizeDisable) {
return columnData;
}
return columnData.map((column) => {
...
return {
...column,
sorter: false,
width: finalWidth,
onHeaderCell: () => ({
column,
width: finalWidth,
onResize: handleResize(column.dataIndex),
onResizeStop: handleSaveResize(column.dataIndex),
disableResize,
}),
};
});
}, [...]);
return (
)
Подробнее здесь: [url]https://stackoverflow.com/questions/79671846/limit-sort-click-to-antd-table-sort-icon[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия