jqGrid中要添加自定义列,并且支持自定义数据对应显示!

jqGrid中要添加自定义列,并且支持自定义数据对应显示!,第1张

这里只提供实现思路:

jqgrid中的colNames,后面是一个表头列名数组,此数组可以从调用这个grid的函数参数中传进去,意味着,可以写一个数组,存一部分固定列,然后通过ajax请求去数据库中查出自定义列,放到固定列的后面。这样我们就拼装起了这个表头数组。

jqGrid中的colModel字段的长度必须和colNames一样,并且也是可变的。意味着这个也需要从参数中传过来,也需要在js中拼装这样一个对象数组。

至于自定义数据对应显示。这个在js里面的接受的属性叫jsonReader。用root来接受Action中返回的拼装Json字符串

在后台Action中,需要将固定列和对应的属性值,自定义列和对应的属性值。使用Gson,拼装成Json数据对象,然后传到前台。

介绍一种比较简单的方法(先转换成string,然后再准换成byte[])

//需要添加引用System.Web.Extensions.dll

using System.Web.Script.Serialization

List<string> list = new List<string> { "a", "b", "c" }

//这个类,需要引用命名空间

JavaScriptSerializer js = new JavaScriptSerializer()

string data = js.Serialize(list)

byte[] bytes = Encoding.UTF8.GetBytes(data)

jq为byte[]字段赋值,也可以这样做。

你先把jq的值,保存在一个隐藏域中,然后再后台读取这个隐藏域的值,然后用

Encoding.UTF8.GetBytes(data)

<div class="main" style="margin-left:400px">    

    <table id="list_grid" class="grid"></table>

    <div id="list_pager"></div>

</div>

jqgrid部分:

$("#stocklist_grid").jqGrid({

url:'ajax.php?action=get_stock_list',

datatype: "json",

mtype: "POST",

colNames:['ID', 'Code', 'Name', 'Mark'],

colModel:[

{name:'id',index:'id',width:60,align:'center'},

{name:'code',index:'code', wdith: 80, align:'center', editable:true, edittype:'textarea', editoptions:{rows:'10'}},

{name:'name',index:'name', width: 80, align:'center'},

{name:'mark',index:'mark', width: 220, align:'left', formatter:function(cellvalue, options, rowObj){

                    return "<span id='"+rowObj.id+"' class='mark_data' style='display:block width:100% cursor:pointer'>"+cellvalue+"</span>"

}}

],


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11385357.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存