动态渲染列

时间:2014-04-02 21:44:17

标签: c# jquery json asp.net-mvc-4 datatable

我动态加载DataTable,所有列都来自JSON格式的数据库,aoColumns需要。

我可以像这样渲染任何一列:

"aoColumns": [
{
    "sName": "I_CPN",
    "fnRender": function (oObj) 
    {
        return a button
    }
}]

sName是我的列名,这是静态的,我可以从JSON格式的C#代码动态获得aoColumns的内容。我的问题是我无法将fnRender放在JSON对象中。

如何获取fnRender以便我可以将我的列渲染为按钮。

1 个答案:

答案 0 :(得分:1)

JSON格式无法携带函数对象。只是一些有限的普通数据类型(参见http://www.json.org)以及可以序列化为字符串并反序列化的所有其他内容。

因此,您可以将函数作为字符串传输,然后在JavaScript前端使用eval将其转回代码。参见例如JSON.parse vs. eval()有关如何使用eval的示例。

虽然这是可能的,但它以某种方式将原始JSON打破为简单的数据容器设计。

您还可以编写某种通用fnRender函数,例如使用getElementById()函数获取列名并找到相应的按钮元素。

你的示例代码是小的,以提供更好的答案(为了概括我们必须至少有2个例子:)