javascript - 将自定义颜色添加到 w2ui 单元格 [Grid]

标签 javascript php w2ui

我正在尝试向 w2ui grid 的单元格添加颜色.

遵循文档后,我可以更改单元格和行的颜色(但单独更改)。

对于单个单元格:

records: [
            { recid: 1, fname: 'Jane', lname: 'Doe', email: 'jdoe@gmail.com', sdate: 384052483664, style: {3:'background-color: yellow; color: white;'}}           
        ]

对于单行:

records: [
                { recid: 1, fname: 'Jane', lname: 'Doe', email: 'jdoe@gmail.com', sdate: 384052483664, style: 'background-color: red; color: white;'}           
            ]

直到这一部分都还好,因为我正在对记录进行硬编码。

问题:

我正在从服务器加载数据,并根据某些条件设置规则,并且我想相应地更改颜色。

我的理解是,我必须仅在服务器上添加样式(我正在使用 php 和 mysql,顺便说一句)。

下面是我的示例代码:

$Query = "SELECT @curRow := @curRow + 1 as id ,`x`, `y`, `z`, `a`, `b`, `c`, `d`, `e`, `f`, `g`, `h`, `i` 
        FROM `table_name` JOIN (SELECT @curRow := 0) r";
        //echo $Query;
        $code=mysqli_query($link,$Query);
        $data = array();
        while($row = mysqli_fetch_assoc($code))
        {
            if($row["id"]==1)
            {
                //$row['expanded']="'spinner'";
                //$object = (object) ['style' => "{ 5: 'color': 'red'; 'background-color': 'whilte' }"];
                //$row['style']=$object;
                $row['style']= "3:'background-color: red; color: black;'";
            }
            //var_dump ($row);
            $data[] = $row;
        }
        $arr = array("total" => count($data), 
        "records" => $data);

假设 if($row["id"]==1) 是规则之一,所以在这里尝试添加样式部分。如果您看到代码,我已经尝试了多种方法来为其添加样式。它只是不起作用。但是,如果使用 php 打印行,我会按照它应该编码的方式得到该行(请参阅上面所述的单单元格样式的代码)。但它没有反射(reflect)在表格中。

第二个问题

我希望将行以一种颜色着色,最重要的是,我希望对一个单独的单元格进行不同的着色(两种不同的规则,一种用于行,一种用于列)。由于我无法实现第一个要求,所以我没有在这个问题上花费太多时间。

第三个问题

如何使行的高度动态化?假设我有一个列名response,我给它分配了一个固定的宽度,当该行的内容超过宽度时,它在可用的后面显示...宽度。我想在下一行显示它。可以这样做吗?

谢谢。

最佳答案

回答您的第一个问题:

style 在到达客户端时必须是一个 JSON 对象,因此在服务器端,它必须是一个数组,稍后传递给 json_encode()

$row['style'] => array('5' => 'background-color: red; color: black;');
...
$result = json_encode($row);
<小时/>

回答你的第二个问题:

最新版本的 w2ui 1.5 支持记录上的 classstyle 属性。

因此,要对行进行着色对行中的单个单元格进行不同的着色,您可以使用:

records: [
    { recid: 1, fname: 'Jane', lname: 'Doe', class: 'my-css-class-for-the-row', style: {3: 'background-color: yellow; color: white;'} }           
];

styleclass 都可以是字符串或对象,因此您也可以反过来使用 style为整行着色,class 为特定单元格着色。

<小时/>

回答你的第三个问题:

由于虚拟滚动,行不能具有动态高度。这意味着所有行必须具有相同的高度。但是,您可以使用

更改所有行的高度

grid.recordHeight = 40;//高度(以像素为单位)

同样,这需要最新的 1.5 版本的 w2ui,如果与列组一起使用,它看起来很奇怪。

关于javascript - 将自定义颜色添加到 w2ui 单元格 [Grid],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38696758/

相关文章:

javascript - 在javascript中从json对象获取数据

javascript - setTimeout 是否创建函数实例?

Javascript:尝试在 IE 中使用圆括号而不是方括号访问表单属性

php - 在 PDO 调用中使用 PHP 常量

php - yii2 使用自定义列查询给出 : Unknown column 'columnname' in 'having clause'

php - MySql 组合结果并应用于第二个表

javascript - w2ui 工具栏元素 - 有没有办法通过 URL 添加自定义图标?

jquery - W2UI多关键词搜索

javascript - 列出对象的所有增强

javascript - 如何动态更改浏览器页面标题以使其与 javascript 或 jQuery 中的 <h1> 标题相匹配?