Start Building Professional
Web Apps Today


 
Categories Question details Back To List
Question  posted by Ray on Sep 30, 2009 15:16
open dhtmlx forum
dhtmlxConnector and bold colum

Hi,
I saw a sample code where in php connector it is possible to load data with some color changes.

i would like to load values from a render_sql and make values in bold font in a particular colum..

load data is ok...and how can i show values in bold ?


Thank u
Answer posted by dhxSupport on Oct 01, 2009 01:37
You can use "beforeRender" event to add "style" or "class" attribute to the necessary cell. Please find more information here http://dhtmlx.com/dhxdocs/doku.php?id=dhtmlxconnector:formatting_changing_data_before_loading
Answer posted by Ray on Oct 02, 2009 15:37
Tried with sample color_rows with no luck....

could be a problem having render_sql instead of render_table?


Answer posted by Stanislav (support) on Oct 05, 2009 03:47
The both methods  are processed in the same way, so usage of render_sql must not cause any problems.
Be sure that
 - custom event is attached before render_sql command
 - you are using the same column name during custom coloring, as was used in sql query 
Answer posted by Ray on Oct 05, 2009 12:07
Probably i'm not doing the right stuff....here's my code:

require("../dhtmlxSuite/dhtmlxConnector/php/codebase/grid_connector.php");

    function color_rows($row){
        if ($row->get_index()%2)
                $row->set_row_color("red");
    }


    $res=mysql_connect("localhost","root","sandbgroup");
    mysql_select_db("hr_mysql");

    $employee_grid = new GridConnector($res);
    $employee_grid->set_encoding("ISO-8859-1");
    $employee_grid->enable_log("Log/employee_grid_connector.log",true);
    $employee_grid->dynamic_loading(100);
   
   
   
 
   
    $employee_grid->event->attach("beforeRender",color_rows);
   
   
   
    $employee_grid->render_sql ("SELECT  hs.loc_code, hs.loc_city, b.employee_id, b.emp_lastname, b.emp_firstname, a.emp_number " .
        "FROM hs_hr_location hs " .
        "JOIN (hs_hr_emp_locations a " .
        "JOIN hs_hr_employee  b " .
        "ON (a.emp_number=b.emp_number)) " .
        "ON (a.loc_code=hs.loc_code) " .
        "WHERE b.emp_status<>'EST011' AND b.emp_status<>'EST012'" .
        "AND (b.terminated_date LIKE" . "'" . date("Y-m") . "%" . "'"  .
        "OR b.terminated_date LIKE '0000-00%') " .
        "","emp_number","employee_id,emp_lastname,emp_firstname,loc_city");


is this the incorrect row?
if ($row->get_index()%2)   and how can i change it in order to make in bold the 1st colum?
              
Answer posted by Stanislav (support) on Oct 06, 2009 01:38
The code which you are using is correct. The same php code works correctly in local samples.  ( you can check the generated xml, it will contain bgColor attribute for necessary rows ) 
Problem can be caused by client side initialization. If you are using the skin with predefined color of rows ( some skin has default alter-css settings ) , the server side color setting can be overridden. 
Please try to change the code of your custom method as 


function color_rows($row){
   if ($row->get_index()%2)
        $row->set_row_style("background-color:red;");
}

style setting has a higher priority, and must not be overridden by client side settings. 
Answer posted by Ray on Oct 06, 2009 02:51
Now it works and i've changed function into:

function bold_matricola($row)
    {
           if ($row->get_index()==0)
            $row->set_row_style("font-weight:bold;");
    }
  
obiviously it changes only the first row in bold...which is the correct function instead of ger_index() in order to change in bold a particular columm?

so:
function bold_matricola($row)
    {
           if ($row->columm==colum number 1)
            $row->set_row_style("font-weight:bold;");
    }

thank u

Answer posted by Stanislav (support) on Oct 06, 2009 06:53
function bold_matricola($row)
{
     $row->set_cell_style("field_name","font-weight:bold;");
}

where field_name  is name of the column ( "emp_lastname" for example )
Answer posted by Ray on Oct 06, 2009 08:14
It works good now...thank u very much....may i ask another question?

if i would extend this function in order to find a particular value in a colum and then make this field in bold?

if ( in ex: emp_lastname == "Entrata")
then set this row in bold?


Answer posted by Stanislav (support) on Oct 06, 2009 10:21
function bold_matricola($row)
{
      if ($row->get_value("emp_lastname") == "Entrata" )
                  $row->set_row_style("font-weight:bold;");
}

You can check full list of methods at
http://www.dhtmlx.com/dhxdocs/doku.php?id=dhtmlxconnector:dataitem_object
http://www.dhtmlx.com/dhxdocs/doku.php?id=dhtmlxconnector:griddataitem_treegriddataitem_specific
Answer posted by Ray on Oct 06, 2009 12:07
Thank u again....
i'll read the article