创建自定义视图


在不同的情况下,您可能需要为数据网格(datagrid)运用更灵活的布局。对于用户来说,卡片视图(Card View)是个不错的选择。这个工具可以在数据网格(datagrid)中迅速获取和显示数据。在数据网格(datagrid)的头部,您可以仅仅通过点击列的头部来排序数据。本教程将向您展示如何创建自定义卡片视图(Card View)。

创建卡片视图(Card View)

从数据网格(datagrid)的默认视图继承,是个创建自定义视图的不错方法。我们将要创建一个卡片视图(Card View)来为每行显示一些信息。

  1. var cardview = $.extend({}, $.fn.datagrid.defaults.view, {
  2. renderRow: function(target, fields, frozen, rowIndex, rowData){
  3. var cc = [];
  4. cc.push('<td colspan=' + fields.length + ' style="padding:10px 5px;border:0;">');
  5. if (!frozen){
  6. var aa = rowData.itemid.split('-');
  7. var img = 'shirt' + aa[1] + '.gif';
  8. cc.push('<img src="images/' + img + '" style="width:150px;float:left">');
  9. cc.push('<div style="float:left;margin-left:20px;">');
  10. for(var i=0; i<fields.length; i++){
  11. var copts = $(target).datagrid('getColumnOption', fields[i]);
  12. cc.push('<p><span class="c-label">' + copts.title + ':</span> ' + rowData[fields[i]] + '</p>');
  13. }
  14. cc.push('</div>');
  15. }
  16. cc.push('</td>');
  17. return cc.join('');
  18. }
  19. });

创建数据网格(DataGrid)

现在我们使用视图创建数据网格(datagrid)。

  1. <table id="tt" style="width:500px;height:400px"
  2. title="DataGrid - CardView" singleSelect="true" fitColumns="true" remoteSort="false"
  3. url="datagrid8_getdata.php" pagination="true" sortOrder="desc" sortName="itemid">
  4. <thead>
  5. <tr>
  6. <th field="itemid" width="80" sortable="true">Item ID</th>
  7. <th field="listprice" width="80" sortable="true">List Price</th>
  8. <th field="unitcost" width="80" sortable="true">Unit Cost</th>
  9. <th field="attr1" width="150" sortable="true">Attribute</th>
  10. <th field="status" width="60" sortable="true">Status</th>
  11. </tr>
  12. </thead>
  13. </table>
  1. $('#tt').datagrid({
  2. view: cardview
  3. });

请注意,我们设置 view 属性,且它的值为我们的卡片视图。

下载 jQuery EasyUI 实例

下载地址