jqgrid 单元格title显示其他数据

本文介绍如何在jqGrid中实现单元格自定义显示功能,通过Ajax动态加载额外信息并展示于单元格上,提供具体实现代码及前后端交互细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近客户要求在单元格里面显示其他信息,并不显示单元格的信息,这需求让我头疼了一会儿,我其实没有做过这样的想到了用ajax做就上网去查阅资料,找到的没有和需求一样的就借鉴了一下他们的思路,废话不说儿先看效果:

就是鼠标放在国内海外这个单元格的时候显示的数据不是它本身,显示其他数据,前台代码:

 function formatShowHide(cellValue, options, rowobject) {
        var id = rowobject[1];
        $.ajax({
            url: '/MyTask/MyTask/ShowData?id=' + id + '',
            dataType: 'json',
            type: 'post',
            data: {},
            success: function (data) {
                var titledata = '流程对接人:' + data.Name + ';电话分机:' + data.Phone + ';组长:' + data.GropuBoss + ';电话分机:' + data.EXT;
                $(".autotip_" + data.id + "").attr("title", titledata);
            }
        });
        if (rowobject[15] != "" || rowobject[15] != null) {
            return "<span  title='" + rowobject[15] + "' class='autotip_" + id + "'>" + rowobject[15] + "</span>";
        } else {
            return "<span  title='" + rowobject[15] + "' class='autotip_" + id + "'>" + rowobject[15] + "</span>";
        }
    }

这是前台代码,需要注意的是在span显示的时候要写个class+此行的ID ,如果定义ID的话在ajax的success获取不到数据,自己去体会吧,后台的代码也没有什么难点就是获取到数据赋值罢了:

  public class tempclass
        {
            public string Name { get; set; }
            public string Phone { get; set; }
            public string GropuBoss { get; set; }
            public string EXT { get; set; }
            public string id { get; set; }
          
        }
        public JsonResult ShowData(string id)
        {
            tempclass model = new tempclass();
            model.id=id;
            model.Name ="Name";
            model.Phone="Phone";
            model.GropuBoss="GropuBoss";
            model.EXT="EXT"; 
            return Json(model,JsonRequestBehavior.AllowGet);
        }

在使用jqgrid的时候要调用前台的方法,我使用的jqgrid比较旧了可能和现在最新版本有点区别,调用的方法:

 ordersGrid.Columns.Find(c => c.DataField == "TaskLungtinAreaName").Formatter = new CustomFormatter { FormatFunction = "formatShowHide" };

        


初次写技术性的,请大佬们多多指教。。。。

可以通过自定义 formatter 函数来实现在 jqGrid单元格显示按钮开关。具体步骤如下: 1. 在 colModel 中定义需要显示开关的列,设置其 formatter 为自定义的函数名,如: ``` { name: 'is_active', index: 'is_active', width: 70, align: 'center', formatter: switchFormatter } ``` 2. 编写自定义的 formatter 函数 switchFormatter,该函数接收四个参数:cellvalue、options、rowObject、action。其中 cellvalue 表示当前单元格的值,options 表示该列的配置选项,rowObject 表示当前行的数据对象,action 表示当前操作的类型。在 switchFormatter 函数中,可以根据参数 cellvalue 来判断当前单元格应该显示开还是关,然后返回对应的 HTML 代码来实现按钮开关的显示。例如: ``` function switchFormatter(cellvalue, options, rowObject, action) { var checked = cellvalue == '1' ? 'checked' : ''; return '<label class="switch"><input type="checkbox" ' + checked + '><span class="slider"></span></label>'; } ``` 3. 在 HTML 中引入必要的 CSS 和 JS 文件,如: ``` <link rel="stylesheet" href="/path/to/jquery-ui.css"> <link rel="stylesheet" href="/path/to/jquery.jqGrid.css"> <link rel="stylesheet" href="/path/to/switch.css"> <script src="/path/to/jquery.js"></script> <script src="/path/to/jquery-ui.js"></script> <script src="/path/to/jquery.jqGrid.js"></script> <script src="/path/to/switch.js"></script> ``` 其中 switch.css 和 switch.js 是用于实现按钮开关样式的 CSS 和 JS 文件,可以从网上下载并引入。 4. 初始化 jqGrid,如: ``` $('#grid').jqGrid({ url: '/path/to/data.json', datatype: 'json', colModel: [ { name: 'id', index: 'id', width: 50, align: 'center' }, { name: 'name', index: 'name', width: 150 }, { name: 'is_active', index: 'is_active', width: 70, align: 'center', formatter: switchFormatter } ], ... }); ``` 通过以上步骤,即可实现在 jqGrid单元格显示按钮开关。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值