`
junlong750
  • 浏览: 22505 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

jquery datagird 单元格悬停显示内容

阅读更多
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Complex DataGrid - jQuery EasyUI Demo</title>
    <link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">
    <link rel="stylesheet" type="text/css" href="../demo.css">
    <script type="text/javascript" src="../../jquery-1.8.0.min.js"></script>
    <script type="text/javascript" src="../../jquery.easyui.min.js"></script>
    <script>
        /**
         * 扩展两个方法
         */
        $.extend($.fn.datagrid.methods, {
            /**
             * 开打提示功能
             * @param {} jq
             * @param {} params 提示消息框的样式
             * @return {}
             */
            doCellTip: function(jq, params){
                function showTip(data, td, e){
                    if ($(td).text() == "") 
                        return;
                    data.tooltip.text($(td).text()).css({
                        top: (e.pageY + 10) + 'px',
                        left: (e.pageX + 20) + 'px',
                        'z-index': $.fn.window.defaults.zIndex,
                        display: 'block'
                    });
                };
                return jq.each(function(){
                    var grid = $(this);
                    var options = $(this).data('datagrid');
                    if (!options.tooltip) {
                        var panel = grid.datagrid('getPanel').panel('panel');
                        var defaultCls = {
                            'border': '1px solid #333',
                            'padding': '2px',
                            'color': '#333',
                            'background': '#f7f5d1',
                            'position': 'absolute',
                            'max-width': '200px',
                            'border-radius' : '4px',
                            '-moz-border-radius' : '4px',
                            '-webkit-border-radius' : '4px',
                            'display': 'none'
                        }
                        var tooltip = $("<div id='celltip'></div>").appendTo('body');
                        tooltip.css($.extend({}, defaultCls, params.cls));
                        options.tooltip = tooltip;
                        panel.find('.datagrid-body').each(function(){
                            var delegateEle = $(this).find('> div.datagrid-body-inner').length ? $(this).find('> div.datagrid-body-inner')[0] : this;
                            $(delegateEle).undelegate('td', 'mouseover').undelegate('td', 'mouseout').undelegate('td', 'mousemove').delegate('td', {
                                'mouseover': function(e){
                                    if (params.delay) {
                                        if (options.tipDelayTime) 
                                            clearTimeout(options.tipDelayTime);
                                        var that = this;
                                        options.tipDelayTime = setTimeout(function(){
                                            showTip(options, that, e);
                                        }, params.delay);
                                    }
                                    else {
                                        showTip(options, this, e);
                                    }
                                    
                                },
                                'mouseout': function(e){
                                    if (options.tipDelayTime) 
                                        clearTimeout(options.tipDelayTime);
                                    options.tooltip.css({
                                        'display': 'none'
                                    });
                                },
                                'mousemove': function(e){
                                    var that = this;
                                    if (options.tipDelayTime) 
                                        clearTimeout(options.tipDelayTime);
                                    //showTip(options, this, e);
                                    options.tipDelayTime = setTimeout(function(){
                                            showTip(options, that, e);
                                        }, params.delay);
                                }
                            });
                        });
                        
                    }
                    
                });
            },
            /**
             * 关闭消息提示功能
             *
             * @param {}
             *            jq
             * @return {}
             */
            cancelCellTip: function(jq){
                return jq.each(function(){
                    var data = $(this).data('datagrid');
                    if (data.tooltip) {
                        data.tooltip.remove();
                        data.tooltip = null;
                        var panel = $(this).datagrid('getPanel').panel('panel');
                        panel.find('.datagrid-body').undelegate('td', 'mouseover').undelegate('td', 'mouseout').undelegate('td', 'mousemove')
                    }
                    if (data.tipDelayTime) {
                        clearTimeout(data.tipDelayTime);
                        data.tipDelayTime = null;
                    }
                });
            }
        });


        $(function(){
            $('#test').datagrid({
                title:'My DataGrid',
                iconCls:'icon-save',
                width:700,
                height:350,
                nowrap: true,
                autoRowHeight: false,
                striped: true,
                collapsible:true,
                url:'066.json',
                sortName: 'code',
                sortOrder: 'desc',
                remoteSort: false,
                idField:'code',
                onLoadSuccess:function(data){
                    $(this).datagrid('doCellTip',{'max-width':'300px','delay':500});
                },
                frozenColumns:[[
                    {field:'ck',checkbox:true},
                    {title:'Code',field:'code',width:80,sortable:true}
                ]],
                columns:[[
                    {title:'Base Information',colspan:3},
                    {field:'opt',title:'Operation',width:100,align:'center', rowspan:2,
                        formatter:function(value,rec){
                            return '<span style="color:red">Edit Delete</span>';
                        }
                    }
                ],[
                    {field:'name',title:'Name',width:120},
                    {field:'addr',title:'Address',width:220,rowspan:2,sortable:true,
                        sorter:function(a,b){
                            return (a>b?1:-1);
                        }
                    },
                    {field:'col4',title:'Col41',width:150,rowspan:2}
                ]],
                pagination:true,
                rownumbers:true,
                toolbar:[{
                    id:'btnadd',
                    text:'Add',
                    iconCls:'icon-add',
                    handler:function(){
                        $('#btnsave').linkbutton('enable');
                        alert('add')
                    }
                },{
                    id:'btncut',
                    text:'Cut',
                    iconCls:'icon-cut',
                    handler:function(){
                        $('#btnsave').linkbutton('enable');
                        alert('cut')
                    }
                },'-',{
                    id:'btnsave',
                    text:'Save',
                    disabled:true,
                    iconCls:'icon-save',
                    handler:function(){
                        $('#btnsave').linkbutton('disable');
                        alert('save')
                    }
                }]
            });
            var p = $('#test').datagrid('getPager');
            $(p).pagination({
                onBeforeRefresh:function(){
                    alert('before refresh');
                }
            });
        });
        function doCellTip(){
            $('#test').datagrid('doCellTip',{'max-width':'100px'});
        }
        function cancelCellTip(){
            $('#test').datagrid('cancelCellTip');
        }
        
    </script>
</head>
<body>
    <h2>Complex DataGrid</h2>
    <div class="demo-info">
        <div class="demo-tip icon-tip"></div>
        <div>Click the button to do actions with datagrid. </div>
    </div>
    
    <div style="margin:10px 0;">
        <a href="#" onclick="doCellTip()">显示提示消息</a>
        <a href="#" onclick="cancelCellTip()">禁止消息显示</a>
        <div id="info"></div>
    </div>
    <table id="test"></table>
</body>
</html>

 

分享到:
评论

相关推荐

    wpf datagrid 单元格颜色 根据条件改变颜色 例子

    在WPF(Windows Presentation Foundation)开发中,DataGrid控件是一种常用的数据展示工具,它可以用于显示和编辑结构化的数据。在某些场景下,我们可能希望根据数据的不同状态或条件来改变DataGrid单元格的颜色,以...

    DataGrid当鼠标划过每行时,在ToolTip中显示每行数据的详情

    3. **构建ToolTip内容**:`BuildTooltipContent`方法根据数据项构建显示在ToolTip中的详细信息。你可以根据实际需求定制这个方法,例如,将所有列的数据都包含进去。 ```csharp private string ...

    EasyUI学习之DataGird分页显示数据

    在本文中,我们将深入探讨如何使用EasyUI的DataGird组件实现分页显示数据。EasyUI是一个基于jQuery的轻量级前端框架,提供了丰富的UI组件,包括DataGird,用于展示表格数据并支持分页、排序、筛选等功能。 首先,...

    jQuery easyui datagird编辑行删除行功能的实现代码

    神马是easyui jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且...下面通过代码看下easyui datagird编辑行删除行功能,具体代码如下所示: function i

    jQuery EasyUI编辑DataGrid用combobox实现多级联动

    DataGrid可以嵌入编辑器,combobox作为编辑器的一种,可以在单元格内提供下拉选择功能。在DataGrid的`columns`配置中,通过`editor`属性指定某一列使用combobox,并设置其`options`,如`url`、`valueField`和`...

    C#实现改变DataGrid某一行和单元格颜色的方法

    在C#中,改变DataGrid的行和单元格颜色通常涉及到对WPF的DataGrid控件的操作,包括数据源的绑定、行和单元格的获取以及样式设置。以下是一个详细的步骤来实现这一功能: 1. **添加DataGrid控件**: 在XAML文件中,...

    jQuery EasyUI中DataGird动态生成列的方法

    EasyUI中使用DataGird显示数据列表中,有时需要根据需要显示不同的列,例如,在权限管理中,不同的用户登录后只能查看自己权限范围内的列表字段,这就需要DataGird动态组合列,下面介绍EasyUI中DataGird动态生成列的...

    [DataGird]如何截取过长的字符串

    在数据展示应用中,尤其是在使用`DataGrid`组件时,我们经常会遇到这样的问题:当单元格中的文本长度超过了列的宽度时,显示效果会受到影响,例如文本被截断或换行等。这不仅影响了界面的美观,还可能造成信息展示不...

    easyui datagird增删改分页例子

    6. **DataGrid**:EasyUI的DataGrid组件可以显示大量数据,支持分页加载,减少一次性加载的数据量,提高页面性能。同时,它能与后端进行交互,实现增删改操作。 7. **分页**:在大数据量的情况下,分页是必不可少的...

    datagirdview 属性详解

    `ToolTipText`属性可以设置单元格的提示信息,显示在鼠标悬停时。 14. **右键菜单(ContextMenuStrip)的设置** 可以通过设置`ContextMenuStrip`属性关联一个`ContextMenuStrip`对象,提供右键点击时的自定义菜单...

    基于WINFORM控件DataGirdViewToExcel

    在众多控件中,DataGridView是一种常用的用于显示和编辑表格数据的控件。本教程将深入探讨如何利用WinForms的DataGridView控件来实现数据的导出功能,特别是将控件中的数据导出到Excel文件。 1. **DataGridView控件...

    FLEX中DATAgird的学习

    例如,如果你想要一个静态显示的 `Label`,即使在非编辑状态下也能显示数据,可以设置 `itemRenderer`。 在使用 `DataGrid` 进行数据编辑时,最佳实践是将数据源绑定到 `ArrayCollection`。这样,当你需要获取编辑...

    Datagird增改删例子

    "Datagird增改删例子"这个项目旨在演示如何在C#环境下利用DataGridView实现数据的添加(Add)、修改(Edit)和删除(Delete)操作。在.NET环境中,我们可以结合数据库和ADO.NET技术来完成这些功能。 首先,`dgdemo_...

    可用的datagird打印类

    可用的datagird打印类。记住datagird要添加样式,调用列子如下: DataGridPrintDocument dgp=new DataGridPrintDocument(dataGrid1,"用户列表",16); //string[] uplinestr={"呵呵,hehe","xixi"}; ...

    WPF分页DataGrid(二)列右键菜单实现

    在"WPF分页DataGrid"中介绍了如何实现分页功能,本文中介绍如果实现右键菜单。点击菜单项Age,将Age列隐藏,再点击则显示...并实现移动列后,同步显示。 详见:http://blog.csdn.net/qing2005/article/details/7683205

    Wpf DataGird示例代码

    开发者定义一个过滤逻辑函数,当数据项通过这个函数时,决定其是否在`DataGrid`中显示。 3. **排序**: 数据排序是用户期望的基本功能,允许他们根据一列或多列的值对数据进行升序或降序排列。`DataGrid`提供了`...

    flex通过httpService读取xml数据到datagird中

    flex通过httpService读取xml数据到datagird中,通过读取远程URL的XML数据(这里保存到本地),保存到ArrayCollection中,然后在将ArrayCollection绑定到datagird上 环境:flex3.0 可直接运行

Global site tag (gtag.js) - Google Analytics