Ngx-datatableの列幅をデータベース内に保存しています。 AJAX呼び出しを使用してこれらの値を取得します。
データテーブルにこれらの値を設定するにはどうすればよいですか?
試したこと:
<ngx-datatable-column>
_要素の[width]プロパティの設定@ViewChild(DatatableComponent) table: DatatableComponent;
として挿入し、_this.table.bodyComponent.columns[0].width = 500;
_を設定しますthis.table.recalculate();
ありとなしで試しましたが、何も機能しないようです。
編集
_datatable-column
_と_header-template
_および_cell-template
_を使用しています。
非常に些細なことでしたが、うまくいきました。
列の幅の値を辞書として機能するobject
に保存します。問題は、ajax呼び出しが終了する前にグリッドがレンダリングされ、グリッドを再描画できないことでした。
だから、辞書オブジェクトの初期値をnull
に設定し、*ngIf
グリッド:<ngx-datatable *ngIf="colSizes">
この方法では、辞書の値を使用する準備ができた後にのみレンダリングが行われます。
Hoang Duc Nguyen の解を使用する場合、列に幅を保存することもできます。
columns = [
{ name: 'Name', prop: 'name', width: 250},
{ name: 'Gender', prop: 'gender'},
{ name: 'Company', prop: 'company', sortable: false }
];
次のように、列width
と[columnMode]="force"
を設定する必要があります。
app.component.html
<ngx-datatable
class="material"
[rows]="rows"
[loadingIndicator]="loadingIndicator"
[columns]="columns"
[columnMode]="force"
[headerHeight]="50"
[footerHeight]="50"
[rowHeight]="'auto'"
[reorderable]="reorderable">
</ngx-datatable>
app.component.ts
columns = [
{ name: 'Name', prop: 'name'},
{ name: 'Gender', prop: 'gender'},
{ name: 'Company', prop: 'company', sortable: false }
];
rows = [
{name: "A", gender: "male", company: "abc"},
{name: "B", gender: "female", company: "abc"},
{name: "C", gender: "male", company: "abc"}
];
columnWidths = [
{column: "name", width: 50},
{column: "gender", width: 100},
{column: "company", width: 150}
]
ngOnInit() {
this.columns.forEach((col: any) => {
const colWidth = this.columnWidths.find(colWidth => colWidth.column === col.prop);
if (colWidth) {
col.width = colWidth.width;
}
});
}
テーブルの列定義で列の幅を設定できます。例のために:
providersColumns = [
{ prop: 'id', name: 'ID', sortable: true, width: -100 },
{ prop: 'name', name: 'Name', sortable: true },
{ prop: 'email', name: 'Email', sortable: true ,width:50}
ここにポイントがあります!!! Ngx-datatableはすべての列に固定幅を設定します。その幅を増やす場合は、この数値がNgx-datatableの幅に追加される正の数を設定する必要があります。固定幅:50 + x(わかりませんが、すべての列で130 PXだったと思います)
したがって、メール列の最終幅は50 + 130 = 180 PXになります
または、その幅を小さくしたい場合は、負の数を設定する必要があります。この数はNgx-datatableの幅に加算されます。
id列の最終幅は-100 + 130 = 30 PX