#javascript #angular #typescript #ngx-datatable
#javascript #angular #typescript #ngx-datatable
Вопрос:
я создаю несколько таблиц с помощью инструмента ngx-datatable в angular 4. мне нужен один столбец ie. первый столбец этой таблицы не должен быть изменен, а все остальные столбцы должны быть упорядочены. кто-нибудь может мне помочь?
Комментарии:
1. Вы имеете в виду, что вы не хотите, чтобы ваш первый столбец был «сортируемым»? Например. нет сортировки первого столбца при нажатии на заголовок?
2. нет. я имею в виду, что первый столбец не должен заменяться каким-либо другим столбцом. позиция или порядок первого столбца не должны изменяться.
3. Хорошо, я обновил свой ответ.
Ответ №1:
Вам нужно будет использовать draggable
привязку входного свойства.
Я верю в ваш component.html ваш компонент ngx-datatable выглядит примерно так. Для первого ngx-datatable-column
вам нужно будет установить draggable
свойство первого столбца как false
. Что касается других столбцов, вы можете установить draggable
значение true , хотя значение draggable по умолчанию равно true, следовательно, на самом деле указывать его не нужно.
<ngx-datatable #table class="bootstrap" [columns]="dataColumns">
<!-- First column is not draggable -->
<ngx-datatable-column [width]="30" [draggable]="false">
...
</ngx-datatable-column>
<!-- The other columns are draggable -->
<ngx-datatable-column *ngFor="let column of dataColumns| slice:1; let i = index;" name="{{column.name}}" prop="{{column.prop}}" [draggable]="true">
...
</ngx-datatable-column>
</ngx-datatable>
И в вашем component.ts вам нужно будет определить свой dataColumns
.
dataColumns = [
{
prop: 'id',
name: 'ID'
},
.
.
// other column definitions
]
Комментарии:
1. Спасибо за ваш ответ. мы уже пробовали это. но проблема в том, что всякий раз, когда мы перетаскиваем любой другой столбец в первый столбец, первый столбец автоматически заменяется позицией другого столбца
2. О боже.. Я только что обнаружил эту проблему тоже. Я не думаю, что у меня есть решение для этого. Может быть, вам следует опубликовать это на их странице github вместо этого? Создать проблему или запрос функции?