用Button选择`vaadin-grid`行数据

时间:2018-06-04 13:41:33

标签: javascript polymer vaadin

<vaadin-grid id="grid" items="[[data]]" active-item="{{activeItem}}">

  <vaadin-grid-column>
    <template class="header">#</template>
    <template>[[index]]</template>
  </vaadin-grid-column>

  <vaadin-grid-column>
    <template class="header">First Name</template>
    <template>[[item.name.first]]</template>
  </vaadin-grid-column>
</vaadin-grid>

单击某行时,可以选择使用activeItem模式vaadin-grid行数据。

有没有办法通过按钮操作来调用它?

也许从父节点中选择一个属性?

<vaadin-grid id="grid" items="[[data]]" active-item="{{activeItem}}">

  <vaadin-grid-column>
    <template class="header">#</template>
    <template>[[index]]</template>
  </vaadin-grid-column>

  <vaadin-grid-column>
    <template class="header">First Name</template>
    <template><paper-button on-tap="selectRowData">Select</paper-button</template>
  </vaadin-grid-column>
</vaadin-grid>

3 个答案:

答案 0 :(得分:1)

您可以通过获取行索引并从数据源中选择行来使用按钮选择行数据。

<vaadin-grid id="grid" items="[[data]]" active-item="{{activeItem}}">
  <vaadin-grid-column>
    <template class="header">#</template>
    <template>[[index]]</template>
  </vaadin-grid-column>

 <vaadin-grid-column>
   <template class="header">First Name</template>
   <template>
     <paper-button id="[[index]] on-tap="selectRowData">Select</paper-button</template>
   </vaadin-grid-column>
 </vaadin-grid>

...

selectRowData(e) {
  let row = this.data[e.detail.sourceEvent.target.id];
  // do something with row data
}

答案 1 :(得分:0)

在其中一个单元格模板中放置一个按钮,将接收该项目的单击侦听器绑定为参数。这对于Polymer数据绑定来说是最容易的。然后将该项添加到侦听器回调中的grid.selectedItems数组中。

答案 2 :(得分:0)

<vaadin-grid-column width="14em">
 <template>
   <vaadin-button on-click="deleteUser" >
     <iron-icon icon="icons:delete" ></iron-icon>
   </vaadin-button>              
 </template>

//您无需定义任何可用的模型

deleteUser(e)
{
   let row=e.model.item;
   console.log(row);
   // e.g. make a REST Delete Operation with iron-ajax
   this.$.ajaxUserModify.url=this.dataURL+"/"+row.id;
   this.$.ajaxUserModify.method="delete";
   this.$.ajaxUserModify.body="";
   this.$.ajaxUserModify.generateRequest();
}