0
primeNg DataTableのヘッダーにテンプレートがあります。私はグローバルフィルタのリセットボタンをした活動 primeNg DataTableヘッダーテンプレートの列(カスタムコントロール、ドロップダウン)がリセットされない
をリストする
- カスタムのDateRangeフィルター(子)コンポーネント
- ドロップダウン、上のすべてのフィルタリセットする必要があります。
dataTable.reset()
メソッドは、通常の列(#3)と通常のテンプレートのカスタム(#4)をリセットしますが、他のヘッダーコントロール(#1、#2)はリセットしません。@ViewChild
オプションを使用してchildComponent.Reset()
を呼び出しようとしましたが、実行時にchildComponent
を"undefined"
としています。@ViewChild
オプションは、dataTable以外の通常の子コントロールで動作しています。primeNg DataTableのすべてのコントロールを正しい方法でリセットするにはどうすればよいですか?
<p-column field="updatedOn" header="Updated On" sortable="custom" (sortFunction)="dateSort($event)" [style]="{'width':'180px'}" filter="true" filterMatchMode="contains"> <template pTemplate="filter" let-col> <date-range-filter #dateRangeFilter (dateRangeUpdated)="onRangeUpdated($event)"></date-range-filter> </template> <template let-col let-val="rowData" pTemplate="body"> <div class="bodyText"> {{val[col.field] | date: 'MM/dd/yyyy hh:mm a'}} </div> </template> </p-column> <p-column field="activity" header="Activity" sortable="true" filter="true" filterMatchMode="equals" [style]="{'width':'100px', 'overflow':'visible'}"> <template pTemplate="filter" let-col> <p-dropdown #activityType appendTo="body" [options]="_activityList" [style]="{'width':'100%'}" (onChange)="memoTable.filter($event.value,col.field,col.filterMatchMode)" styleClass="ui-column-filter"></p-dropdown> </template> <template let-col let-val="rowData" pTemplate="body"> <span class="ActivityBox" [ngClass]="getActivityColor(val[col.field])">{{getActivityType(val[col.field])}}</span> </template> </p-column> <p-column field="User" header="User" sortable="true" filter="true" filterMatchMode="contains" [style]="{'width':'95px'}"></p-column> <p-column field="comment" header="comment" sortable="true" filter="true" filterMatchMode="contains"> <template let-col let-val="rowData" pTemplate="body"> <div> <div class="NotesColumn" [ngClass]="val[col.field].length > 15? 'underlined' : ''" (mouseenter)="op.show($event)" (mouseleave)="op.hide($event)"> {{val[col.field]}} </div> <p-overlayPanel #op [styleClass]="overlayDiv" [appendTo]="overlayTarget"> <div class="overlayDiv"> {{val[col.field]}} </div> </p-overlayPanel> </div> </template> </p-column>
p-dropdownをリセットするには、-1:[(ngModel)] = "_ selectedActivityType"を指定して、選択した値を取得します。 2: '_selectedActivityType'をactivityList - 'this._selectedActivityType = this._activityList [0]'からデフォルト値にリセットします。この問題は依然としてカスタムコントロールで解決されていません。 globalFilterClearイベント中にコンポーネントがレンダリングされないと、 '未定義の' clearDates 'プロパティを読み取れません。 'clearDates()'はカスタムコンポーネントのパブリックメソッドです。 –