0

我正在使用 Lib.Web.Mvc(版本 6.1.0)在客户端生成 jqgrid。

JqG​​ridColumnModel 的大多数属性都可以正常工作,但CellAttributes在这里没有任何作用。

这是我的代码:


configuration.Settings.ColumnsModels.AddRange(new JqGridColumnModel[]
{
new JqGridColumnModel("ProductID") { Index = "ProductID" },
new JqGridColumnModel("ProductName") {  Index = "ProductName" },
new JqGridColumnModel("SupplierID") {  Index = "SupplierID" },
new JqGridColumnModel("CategoryID") {  Index = "CategoryID" },
new JqGridColumnModel("QuantityPerUnit") {  Index = "QuantityPerUnit"},

new JqGridColumnModel("UnitPrice") { Index = "UnitPrice", CellAttributes *="value=1"} });


我不知道 CellAttributes 在 lastes 版本 6.1.0 中是否仍然不起作用?或者我不知道如何使用它。

请告诉我从服务器端(控制器)向单元添加更多属性的想法。

4

1 回答 1

0

是的属性的JqGridColumnModel.CellAttributes代理。此属性采用一个 JavaScript 函数,该函数应返回带有属性的字符串。您可以在下面找到jqGrid 文档中的相应部分:cellattrcolModel

该函数在数据创建期间向单元格添加属性 - 即动态地。例如,可以使用表格单元格的所有有效属性或具有不同属性的样式属性。该函数应返回字符串。...

并来自Lib.Web.Mvc 文档

获取或设置在数据创建过程中(动态地)向单元格添加属性的函数。

因此,在您的情况下,代码应如下所示:

configuration.Settings.ColumnsModels.AddRange(new JqGridColumnModel[]
{
    new JqGridColumnModel("ProductID") { Index = "ProductID" },
    new JqGridColumnModel("ProductName") {  Index = "ProductName" },
    new JqGridColumnModel("SupplierID") {  Index = "SupplierID" },
    new JqGridColumnModel("CategoryID") {  Index = "CategoryID" },
    new JqGridColumnModel("QuantityPerUnit") {  Index = "QuantityPerUnit" },
    new JqGridColumnModel("UnitPrice") { Index = "UnitPrice", CellAttributes = "function() { return 'value=1'; }" }
});

更新

有一种特殊情况,配置导入和导出功能。在这种情况下,JavaScript 函数、事件和回调的所有设置都将被忽略,因为它们无法序列化为 JSON(这是设计使然)。

于 2013-01-02T10:43:07.177 回答