1. igx-columnにセル編集テンプレートを使用し、
2. セル編集テンプレートにigx-date-pickerを配置し、
3. igx-date-pickerでさらにng-templateを埋め込み、
4. 3のng-template内のinputタグにIgxMaskを介してpromptCharを設定し、
5. 4のinputタグのblurイベントで、inputタグの値でセルの値を更新
してください。

3と4、および、5の一部は、
IgxGrid dataType=”‘date’”の列で編集時のマスクの”_”を別の文字に設定する。
と同じ要領です。

<!-- app.component.html側 -->
<igx-column [field]="'Birthday'" [header]="'誕生日'" dataType="date" [editable]="true">

  <!-- 中略 -->

  <!-- 1. igx-columnにセル編集テンプレートを使用し -->
  <ng-template igxCellEditor let-value let-cell="cell">
    <!-- 2. セル編集テンプレートにigx-date-pickerを配置し -->
    <igx-date-picker #picker [(value)]="cell.editValue" mode="dropdown">
      <!-- 3. igx-date-pickerでさらにng-templateを埋め込み -->
      <ng-template igxDatePickerTemplate let-openDialog="openDialog" let-value="value"
        let-displayData="displayData">
        <igx-input-group>
          <!--
            4. 3のng-template内のinputタグにIgxMaskを介してpromptCharを設定し、
            5. 4のinputタグのblurイベントで、inputタグの値でセルの値を更新
          -->
          <input igxInput [value]="displayData | date:'yyyy/MM/dd'" [igxMask]="'0000/00/00'" [promptChar]="'0'"
            (blur)="changeDate($event, cell)" />
          <igx-prefix (click)="openDialog()">
            <igx-icon>today</igx-icon>
          </igx-prefix>
        </igx-input-group>
      </ng-template>
    </igx-date-picker>
  </ng-template>
</igx-column>
// app.component.ts

// 5. 4のinputタグのblurイベントで、inputタグの値でセルの値を更新
public changeDate(event, cell: IgxGridCellComponent) {
  const input = event.target.value;
  const parsedDate = new Date(input);
  if (this.isDateValid(parsedDate)) {
    cell.editValue = parsedDate;
    cell.value = parsedDate;
  }
}

private isDateValid(date: Date): boolean {
  return (new Date(date).toLocaleString() !== "Invalid Date");
}

 

サンプル

 

製品について

Ignite UI for Angular