`

easyUI 展开DataGrid里面的行显示详细信息

阅读更多

@author YHC

datagrid 可以改变它的view(视图)去显示不同的效果.使用详细视图,datagrid可以显示展开按钮("+" 或者 "-")在数据行的左边,用户可以展开一个行去显示一个附加的详细信息.


查看 Demo

步骤 1: 创建 DataGrid

<table id="dg" style="width:500px;height:250px" url="data/datagrid_data.json" title="DataGrid - Expand Row" singleselect="true" fitcolumns="true">  
    <thead>  
        <tr>  
            <th field="itemid" width="60">Item ID</th>  
            <th field="productid" width="80">Product ID</th>  
            <th field="listprice" align="right" width="70">List Price</th>  
            <th field="unitcost" align="right" width="70">Unit Cost</th>  
            <th field="status" width="50" align="center">Status</th>  
        </tr>  
    </thead>  
</table>  

步骤 2: 为DataGrid设置详细视图

使用详细视图,切记:引入视图script文件在你的页面的头部.

<script type="text/javascript" src="http://www.jeasyui.com/easyui/datagrid-detailview.js"></script>  
$('#dg').datagrid({  
    view: detailview,  
    detailFormatter:function(index,row){  
        return '<div id="ddv-' + index + '" style="padding:5px 0"></div>';  
    },  
    onExpandRow: function(index,row){  
        $('#ddv-'+index).panel({  
            border:false,  
            cache:false,  
            href:'datagrid21_getdetail.php?itemid='+row.itemid,  
            onLoad:function(){  
                $('#dg').datagrid('fixDetailRowHeight',index);  
            }  
        });  
        $('#dg').datagrid('fixDetailRowHeight',index);  
    }  
});  
我们定义 detailFormatter函数告诉datagrid 如何渲染详细视图,在这种情况下,我们返回一个简单的 '<div>'元素,它将充当最为一个详细内容的容器,

注意:详细信息为空,当用户点击展开按钮('+'),onExpandRow事件将被触发,所以我们可以写一些代码去加载ajax详细内容,最后我们调用fixDetailRowHeight方法去固定行高度,当详细内容加载之后.

步骤 3: 服务器端代码

datagrid21_getdetail.php

<?php  
$itemid = $_REQUEST['itemid'];  
  
$content = file_get_contents('data/datagrid_data.json');  
$data = json_decode($content,true);  
foreach($data['rows'] as $item){  
    if ($item['itemid'] == $itemid){  
        break;  
    }  
}  
  
?>  
  
<table class="dv-table" border="0" style="width:100%;">  
    <tr>  
        <td rowspan="3" style="width:60px">  
            <?php  
                echo "<img src=\"images/$itemid.gif\" style=\"height:50px\"/>";  
            ?>  
        </td>  
        <td class="dv-label">Item ID: </td>  
        <td><?php echo $item['itemid'];?></td>  
        <td class="dv-label">Product ID:</td>  
        <td><?php echo $item['productid'];?></td>  
    </tr>  
    <tr>  
        <td class="dv-label">List Price: </td>  
        <td><?php echo $item['listprice'];?></td>  
        <td class="dv-label">Unit Cost:</td>  
        <td><?php echo $item['unitcost'];?></td>  
    </tr>  
    <tr>  
        <td class="dv-label">Attribute: </td>  
        <td colspan="3"><?php echo $item['attr1'];?></td>  
    </tr>  
</table>  

下载 EasyUI 示例代码:










分享到:
评论
1 楼 IT_Dodo 2013-04-26  
按你写的Demo写了 可跑不起来哈,.,....
报(datagrid-detailview.js)源代码中的
var t = dc.view1.children('div.datagrid-header').find('table');
错误..我看下发现
var state = $.data(target, 'datagrid');
var opts = state.options;
var dc = state.dc;
那个dc根本没那属性 源代码为什么要那么去获取..........是不是必须在线获取datagrid-detailview.js那个文件.........

相关推荐

    EasyUI的DataGrid显示ASP.NET内容

    EasyUI版本比较旧,请下载新的版本更新,最新版本测试通过。

    EasyUI tutorial 中文版 chm

    easyUI 展开DataGrid里面的行显示详细信息 easyUI 在主datagrid上创建子datagrid Window easyUI 我的第一个window easyUI 自定义window工具 easyUI window和布局 easyUI 创建Dialog对话框 easyUI Dialog...

    easyui datagrid-datagridview.js自己修改版

    easyui的datagridview拓展。具体的使用方法看我的博文,网址https://mp.csdn.net/postedit/85068385

    jquery-easyui-datagridview datagrid-detailview.js升级自定义展开按钮功能

    jquery-easyui的扩展组件jquery-easyui-datagridview,其中的datagrid-detailview.js可方便地生成子网格,但是每行均默认生成展开按钮,实际我们希望对某些行不显示展开按钮,网上很多人提供的解决方案就是通过dom...

    使用DataGrid完成一个行级数据折叠收缩展示的功能

    WPF中使用DataGrid完成一个行级数据折叠收缩展开的功能,通过点击行头折叠或者展开明细数据。该能能常见的使用在数据的明细汇总展示上,初始展示汇总数据点击展示某行汇总的结果展示对应的明细信息。

    easyui+增强窗体 demo_ext为实例文件

    6、datagrid增加 getAllExpandRowIndex 方法,用于在detailView视图下获取当前页已展开行的索引。 7、datagrid增加 getExpandRowIndex 方法,用于在detailView视图下获取当前页第一个展开行的索引。 8、datagrid增加...

    jquery-easyui-EDT-1.5.5.7z

    jQuery EasyUI 1.5.5 版本更新内容 Bug(修复) tabs:修复当标题包含符合元素时,所选择的历史顺序错误的问题; combo:修复当设置了一个较大的'delay'值的时候下拉面板可能不会被隐藏的问题; layout:修复当鼠标...

    datagrid-detailview

    为了支持在easyUI 创建展开行明细编辑表单的 CRUD 应用,需要用到的js插件,官网已失效

    jQuery EasyUI 1.3 API 中文教程

    创建展开行详细编辑应用 创建RSS Feed阅读器 创建拖动和放置 创建拖放的购物车 创建一个课程表 创建简单的菜单 按钮与布局 创建Link Button 创建Menu Button 创建Split Button 创建border ...

    EasyUi combotree 实现动态加载树节点

    简介EasyUI datagrid editor combogrid搜索框的实现 EasyUi中的Combogrid 实现分页和动态搜索远程数据 easyui 1.2.4例子中并没有给出动态加载树节点的例子,只好自己研究。 从源码中可知可以看出combotree 是继承 ...

Global site tag (gtag.js) - Google Analytics