最近客户要求在单元格里面显示其他信息,并不显示单元格的信息,这需求让我头疼了一会儿,我其实没有做过这样的想到了用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" };
初次写技术性的,请大佬们多多指教。。。。