2017-11-03 10 views
2

データグリッドコンポーネントの行の詳細を取得して、グリッド内の空き領域の全幅を取得するにはどうすればよいですか?Datagrid - 行の詳細全幅

さまざまなCSSクラスのフレックスと幅のプロパティを変更しようとしましたが、何も試したことがないようです。

https://plnkr.co/edit/Y7L3eGpYbzvd31HK0v2F?p=preview

<clr-datagrid> 
    <clr-dg-column clrDgField="firstname">First name</clr-dg-column> 
    <clr-dg-column clrDgField="lastname">Last name</clr-dg-column> 

    <clr-dg-row *clrDgItems="let user of users"> 
     <clr-dg-cell>{{user.firstname}}</clr-dg-cell> 
     <clr-dg-cell>{{user.lastname}}</clr-dg-cell> 

     <my-detail *clrIfExpanded ngProjectAs="clr-dg-row-detail"></my-detail> 
    </clr-dg-row> 

    <clr-dg-footer>{{users.length}} items</clr-dg-footer> 
</clr-datagrid> 

@Component({ 
selector: "my-detail", 
template: ` 
    <clr-dg-row-detail [clrDgReplace]="true"> 
     <div class="row"> 
      <div class="col-xs-2">Lorem Ipsum:</div> 
      <div class="col-xs-4">...</div> 
      <div class="col-xs-2">Lorem Ipsum:</div> 
      <div class="col-xs-4">...</div> 
     </div> 
    </clr-dg-row-detail> 
}) 

答えて

2

これはあなたの質問への答えであれば、そのハードと言っています。コンテンツが完全な行になるようにするには、DataGrid CSSを変更する必要はありません。展開可能な行は、行全体を占めるコンテンツまたは列ごとにスペースを占めるコンテンツで使用できます。

ここでは、列の内容ごとに完全な行の内容を入れ替えることができるように、展開可能な行が実装されたplunkがあります。

https://plnkr.co/edit/9cj1lE5B4dwpRSRcKXXX?p=preview

関連するHTMLは次のようになります。さらに調査では

<clr-datagrid> 
     <clr-dg-column>User ID</clr-dg-column> 
     <clr-dg-column>Name</clr-dg-column> 
     <clr-dg-column>Creation date</clr-dg-column> 

     <clr-dg-row *clrDgItems="let user of users" [clrDgItem]="user"> 
       <clr-dg-cell>{{user.id}}</clr-dg-cell> 
       <clr-dg-cell>{{user.name}}</clr-dg-cell> 
       <clr-dg-cell>{{user.creation | date}}</clr-dg-cell> 

       <!-- Example using a wrapper component --> 
       <clr-dg-row-detail *clrIfExpanded> 
       <ng-template [ngIf]="detail === 'default'"> 
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin in neque in ante placerat mattis id sed 
        quam. Proin rhoncus lacus et tempor dignissim. Vivamus sem quam, pellentesque aliquet suscipit eget, 
        pellentesque sed arcu. Vivamus in dui lectus. Suspendisse cursus est ac nisl imperdiet viverra. Aenean 
        sagittis nibh lacus, in eleifend urna ultrices et. Mauris porttitor nisi nec velit pharetra porttitor. 
        Vestibulum vulputate sollicitudin dolor ut tincidunt. Phasellus vitae blandit felis. Nullam posuere 
        ipsum tincidunt velit pellentesque rhoncus. Morbi faucibus ut ipsum at malesuada. Nam vestibulum felis 
        sit amet metus finibus hendrerit. Fusce faucibus odio eget ex vulputate rhoncus. Fusce nec aliquam leo, 
        at suscipit diam. 
       </ng-template> 

       <ng-template [ngIf]="detail === 'cols'"> 
        <clr-dg-cell>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</clr-dg-cell> 
        <clr-dg-cell>Proin in neque in ante placerat mattis id sed quam.</clr-dg-cell> 
        <clr-dg-cell>Proin rhoncus lacus et tempor dignissim.</clr-dg-cell> 
        <clr-dg-cell>Vivamus sem quam, pellentesque aliquet suscipit eget, pellentesque sed arcu.</clr-dg-cell> 
        <clr-dg-cell>Vivamus in dui lectus. Suspendisse cursus est ac nisl imperdiet viverra.</clr-dg-cell> 
       </ng-template> 
       </clr-dg-row-detail> 
      </clr-dg-row> 

     <clr-dg-footer>{{users.length}} users</clr-dg-footer> 
    </clr-datagrid> 
+0

ロー・詳細コンテンツがインラインで宣言されている場合は、行、詳細については、コンテナが利用できる幅を記入しますようです。 row-detailsがngProjectAsを使用するカスタムコンポーネントを使用して実装されている場合、詳細の幅はコンテンツによって決まり、利用可能な領域を埋めるように自動的に拡張されません。これはここで実証されています。 https://plnkr.co/edit/VMC9LeZy9Ro7ANwpOxiy?p=preview。これはバグですか? – Jake

+1

'clr-dg-cell'の例ごとに' row'要素を調べると、上のplunkerを見ると '.row'コンテナ要素は行の全幅を占めています。 datagrid-row-detailsには、このCSSが適用されています:https://github.com/vmware/clarity/blob/master/src/clarity-angular/data/datagrid/_datagrid.clarity.scss#L72 申し訳ありません私はあなたが解決しようとしている問題を理解するのに苦労していますか?行の複数の列レイアウトを作成したいと思うようですが、わかりません。 – hippeelee

+0

さらに、行全体を置き換えたい場合は、clr-dg-cellコンポジットでコンテンツをラップする必要はありません。https://plnkr.co/edit/Q5OAj87F5N8VeLrZc7O?p=preview – hippeelee

関連する問題