Start Building Professional
Web Apps Today


 
Categories Question details Back To List
Question  posted on Jun 26, 2008 22:52
open dhtmlx forum
Width of the column to autofit

Hi,

I'm making use of grid. I've set the

mygrid.enableAutoWidth(true,900);

and to auto resize the grid i've made use of

function onLoadingEndFunc(){

var count = mygrid.getColumnCount();

for(var i = 0; i < count; i++)

mygrid.adjustColumnSize(i);

}
.
.
.
mygrid.loadXMLString(sXML, onLoadingEndFunc);

Grid without using the onLoadingEndFunc ,

|New | One | Two | Three | Four | Five | Six | Seven |Eight | --> Considering the size of column as 100


Grid After Using onLoadingEndFunc with 6 columns,

|New | One | Two | Three | Four | Five |

Grid After Using onLoadingEndFunc with 3 columns,

| NEw |One | Two |

here by using the above code the grid size is always maintained to 900 even though the number
of columns are 3/4/5...
In this if the number of columns are more, then the columns are generated with proper widths.
If the number of columns is less than three then the widths of the columns become very large.
The width of the columns here are based on the number of columns present. i don't want the size
of the grid to be always 900. I just want the column widths to get expanded to the length of
the text.
I've tried making use of 'enableMultiLine', but i'm also making use of 'enableSmartRendering' as they are mutually exclusive i couldn't make use of the 'enableMultiLine' option.
How can i acheive the above mentioned property? Kindly suggest me on how to proceed?

Answer posted by Support on Jun 27, 2008 01:59
>> here by using the above code the grid size is always maintained to 900 even though the number  of columns are 3/4/5
If you have
    mygrid.enableAutoWidth(true,900);
The grid must autosize its width , so it will not be greater than 900px in width, but it may be lesser than such value.
Please check attached sample - it uses the same approach, and grid has lesser width with lesser count of columns.

Please be sure that you are not using auto-size columns ( size = * ) during grid initialization - such columns will not work correctly with adjustColumnSize
Attachments (1)
Answer posted on Jul 09, 2008 06:41

Thanks for the reply,

But with the code

mygrid.enableAutoWidth(true, 900); //With column size as 100

i'm unable to get the value in the header autowrapped. To get the value in the header auto wrapped i'm making use of the "onLoadingEndFunc".

Here when the number of column are less the function "onLoadingEndFunc" is causing the grid to fit to 900.

Can you please suggest me on how to overcome the problem?

Answer posted by Support on Jul 09, 2008 07:20
The adjustColumn functionality calculate width of columns including header row. There is no way to adjust grid column widht only by width of data part of column.
You can modify dhtmlxgrid.js in next way

       adjustColumnSize:function(cInd, complex){
        this._notresize=true;
        var m = 0;
        this._setColumnSizeR(cInd, 20);
   
    // you can comment next loop, it will disable part of code, which calculate width of headers
    /*    for (var j = 1; j < this.hdr.rows.length; j++){

Answer posted on Jul 10, 2008 02:19

Thanks for the sppedy reply,

Do you have any plans of including this change in any of the future builds? If yes when can we expect?

Answer posted by Support on Jul 10, 2008 03:40
Currently we have not plans to change behavior of adjustColumn functionality in such way.
The existing solution, which includes height of data and header in calculation, works as expected in most situation.