2016-08-01 3 views
0

Я пытаюсь добавить цвет в ячейку w2uigrid.Добавить пользовательский цвет в ячейку 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, btw).

Ниже мой пример кода:

$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, я получаю строку точно так, как она должна кодироваться (см. Код для одного стиля ячейки, указанный выше). Но это не отражается в таблице.

Второй quesstion

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

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

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

Спасибо.

ответ

1

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

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 и он выглядит изворотливый, если используется вместе с группами столбцов.

+0

Я могу использовать любой пользовательский css для строки? Или есть какой-то конкретный формат, которому я должен следовать? – driftking9987

+0

Вы можете использовать CSS обычно. В некоторых случаях вам может потребоваться добавить '! Important' в свойство CSS, поэтому вы можете заставить браузер перезаписать w2ui-значения по умолчанию (или стили, взятые из других таблиц стилей, таких как jquery-ui или bootstrap). –

Смежные вопросы