JavaScript — Добавить пользовательский цвет в ячейку w2ui [Сетка]

Я пытаюсь добавить цвет в ячейку w2ui сетка.

После ознакомления с документацией я могу изменить цвет ячейки и строки (но индивидуально).

Для одной ячейки:

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

Для одного ряда:

records: [
{ recid: 1, fname: 'Jane', lname: 'Doe', email: '[email protected]', 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);

Assueme if($row["id"]==1) является одним из правил, поэтому здесь я пытаюсь добавить часть стиля. Если вы видите код, я попробовал несколько способов добавить стиль к нему. Это просто не работает. Но если я печатаю строки, используя php, я получаю строку точно так, как она должна кодироваться (см. Код для стиля отдельной ячейки, указанного выше). Но это не отражено в таблице.

Второй вопрос

Мне бы хотелось, чтобы строки были окрашены в один цвет, и, кроме того, я хотел бы покрасить одну отдельную ячейку по-разному (два разных правила, одно для строк и одно для столбцов). Поскольку я не смог выполнить первое требование, я не тратил много времени на эту проблему.

Третий вопрос

Как я могу сделать динамическую высоту строки? Допустим, у меня есть имя столбца responseЯ назначил ему фиксированную ширину, когда содержимое этой строки превышает ширину, оно показывает ... после доступной ширины. Я хочу показать это в следующей строке. Возможно ли это сделать?

Благодарю.

0

Решение

Чтобы ответить на ваш первый вопрос:

style должен быть объектом JSON, когда он прибывает на стороне клиента, поэтому на стороне сервера это должен быть массив, который позже передается в json_encode()

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

Чтобы ответить на ваш второй вопрос:

Последняя версия w2ui 1.5 поддерживает оба class а также style атрибуты в записи.

Итак, чтобы раскрасить ряд а также по-разному раскрасьте одну ячейку в строке, вы можете использовать:

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

style а также class оба могут быть либо строкой, либо объектом, так что вы можете сделать это и наоборот style раскрасить весь ряд и class окрашивать конкретные клетки.


Чтобы ответить на ваш третий вопрос:

Строки не могут иметь динамическую высоту из-за виртуальной прокрутки. Это означает, что все строки должны иметь одинаковую высоту. Однако вы можете изменить высоту всех рядов с помощью

grid.recordHeight = 40; // height in pixels

Опять же, для этого требуется последняя версия 1.5 w2ui, и она выглядит странно, если ее использовать вместе с группами столбцов.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]