primeNg DataTable 单元格中的溢出文本

Posted

技术标签:

【中文标题】primeNg DataTable 单元格中的溢出文本【英文标题】:Overflow text in primeNg DataTabel cell 【发布时间】:2018-02-12 11:17:54 【问题描述】:

我想在 DataTable 单元格 primeNg 中隐藏溢出文本,但似乎没有任何效果。 我在他们的文档中没有找到任何可以帮助我的东西。

  <p-dataTable #dataTable 
tableStyleClass="defaultDataTable"
[value]="rows | async"
resizableColumns="false"
reorderableColumns="true" 
responsive="true"
[rowHover]="true" 
[(selection)]="selectedRows"
[rowStyleClass]="getRowClass" 
[loading] = "loading"
(onRowClick)="onSelect($event)" 
(onRowSelect)="onSelect($event)" 
(onRowUnselect)="onSelect($event)"
(onRowDblclick)="onRowDblclick($event)" 
(onHeaderCheckboxToggle)="checkAll($event)">
<p-footer class="table-footer p-text-muted" *ngIf="showFooter">
  <ng-container i18n> footerText: dataTable?.dataToRender?.length || 0 </ng-container>
</p-footer>
<p-column *ngIf="hasCheckboxColumn == true" [field]="IsSelected" [header]="" selectionMode="multiple"
  onclick="checkAll($event)" [sortable]="false" ></p-column>
      <p-column *ngFor="let column of columns" [field]="column.prop" [style] = "width: '20%'" [header]="column.name" [hidden]="!column.visible" [sortable]="isLockColumn(column.name) == false"  >
          <ng-template let-col let-row="rowData" pTemplate="body">
            <div *ngIf="isValueBoolean(row[col.field]); else renderValue" align="center" title=" ">
              <md-checkbox [(ngModel)]="row[col.field]" (change)="lockColumnChecked($event, row)" style = "width:20%;text-overflow: ellipsis;" [disabled]="true"></md-checkbox>
            </div>
            <ng-template #renderValue style = "width:20%;text-overflow: ellipsis;"><span style = "width:20%;text-overflow: ellipsis;" [mdTooltip]="getTooltip(row, column)" mdTooltipPosition="before">row[col.field]</span></ng-template>
          </ng-template>
          <ng-template *ngIf="isLockColumn(column.name)" pTemplate="header">
            <div class="lock-header">
              <md-checkbox [(ngModel)]="headerSelectClicked" (click)="changeStateOfRows(headerSelectClicked, rows, 'IsLocked')" class="lock-header-checkbox"></md-checkbox>
              <i class="fa fa-lock fa-1x" aria-hidden="true"></i>
            </div>
          </ng-template>
        </p-column>

【问题讨论】:

图片在附件中不可用...但是如果溢出:省略号不起作用,则使用自动换行:break-word; 尝试将 style.css 中的全局类定义为 -defaultDataTable word-wrap: break-word; 不,它没有用...我很沮丧 默认情况下它会被隐藏...数据表使用 CSS 属性溢出:隐藏。您能否尝试附上您的图片或任何 plunker 演示 1drv.ms/i/s!AgNenwMMyZRWg4tNRzRRcYMdqQa7-Q 【参考方案1】:

只需在 p 列中添加空白样式即可。这对我有用。

【讨论】:

【参考方案2】:
 .ui-datatable-data> tr> td 
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 150px;

这是最终的解决方案...谢谢你们!

【讨论】:

@Filip 有什么方法可以只针对单个列吗? @MurginBoo 你有没有尝试过类似的东西: .ui-datatable-data> tr> td:nth-child(2) // css

以上是关于primeNg DataTable 单元格中的溢出文本的主要内容,如果未能解决你的问题,请参考以下文章

Angular Ag-Grid:在 Ag Grid 单元格中添加 PrimeNg P-dropdown 作为 html 元素

DataTable - 单元格中的仅颜色子字符串

怎样取得dataTable中某一单元格的值

表格单元格中的CSS文本溢出?

如何隐藏材质ui表格单元格中的溢出内容而不是换行

如何在dataTable的单个单元格中添加多个json值