public/javascripts/yui/datatable/datatable.js
function(oColumn, elTd) {
    // Only Columns without widths that are not hidden
    if(!oColumn.width && !oColumn.hidden) {
        var elTh = oColumn.getThEl();
        // Unset a calculated auto-width
        if(oColumn._calculatedWidth) {
            this._setColumnWidth(oColumn, "auto", "visible");
        }
        // Compare auto-widths
        if(elTh.offsetWidth !== elTd.offsetWidth) {
            var elWider = (elTh.offsetWidth > elTd.offsetWidth) ?
                    oColumn.getThLinerEl() : elTd.firstChild;               

            // Grab the wider liner width, unless the minWidth is wider
            var newWidth = Math.max(0,
                (elWider.offsetWidth -(parseInt(Dom.getStyle(elWider,"paddingLeft"),10)|0) - (parseInt(Dom.getStyle(elWider,"paddingRight"),10)|0)),
                oColumn.minWidth);
                
            var sOverflow = 'visible';
            
            // Now validate against maxAutoWidth
            if((oColumn.maxAutoWidth > 0) && (newWidth > oColumn.maxAutoWidth)) {
                newWidth = oColumn.maxAutoWidth;
                sOverflow = "hidden";
            }

            // Set to the wider auto-width
            this._elTbody.style.display = "none";
            this._setColumnWidth(oColumn, newWidth+'px', sOverflow);
            oColumn._calculatedWidth = newWidth;
            this._elTbody.style.display = "";
        }
    }
}
function(oColumn, elTd) {
    // Only Columns without widths that are not hidden
    if(!oColumn.width && !oColumn.hidden) {
        var elTh = oColumn.getThEl();
        // Unset a calculated auto-width
        if(oColumn._calculatedWidth) {
            this._setColumnWidth(oColumn, "auto", "visible");
        }
        // Compare auto-widths
        if(elTh.offsetWidth !== elTd.offsetWidth) {
            var elWider = (elTh.offsetWidth > elTd.offsetWidth) ?
                    oColumn.getThLinerEl() : elTd.firstChild;               

            // Grab the wider liner width, unless the minWidth is wider
            var newWidth = Math.max(0,
                (elWider.offsetWidth -(parseInt(Dom.getStyle(elWider,"paddingLeft"),10)|0) - (parseInt(Dom.getStyle(elWider,"paddingRight"),10)|0)),
                oColumn.minWidth);
                
            var sOverflow = 'visible';
            
            // Now validate against maxAutoWidth
            if((oColumn.maxAutoWidth > 0) && (newWidth > oColumn.maxAutoWidth)) {
                newWidth = oColumn.maxAutoWidth;
                sOverflow = "hidden";
            }

            // Set to the wider auto-width
            this._elTbody.style.display = "none";
            this._setColumnWidth(oColumn, newWidth+'px', sOverflow);
            oColumn._calculatedWidth = newWidth;
            this._elTbody.style.display = "";
        }
    }
}
function ( oColumn , elTd ) { // Only Columns without widths that are not hidden if ( ! oColumn . width && ! oColumn . hidden ) { var elTh = oColumn . getThEl ( ) ; // Unset a calculated auto-width if ( oColumn . _calculatedWidth ) { this . _setColumnWidth ( oColumn , "auto" , "visible" ) ; } // Compare auto-widths if ( elTh . offsetWidth !== elTd . offsetWidth ) { var elWider = ( elTh . offsetWidth > elTd . offsetWidth ) ? oColumn . getThLinerEl ( ) : elTd . firstChild ; // Grab the wider liner width, unless the minWidth is wider var newWidth = Math . max ( 0 , ( elWider . offsetWidth - ( parseInt ( Dom . getStyle ( elWider , "paddingLeft" ) , 10 ) | 0 ) - ( parseInt ( Dom . getStyle ( elWider , "paddingRight" ) , 10 ) | 0 ) ) , oColumn . minWidth ) ; var sOverflow = 'visible' ; // Now validate against maxAutoWidth if ( ( oColumn . maxAutoWidth > 0 ) && ( newWidth > oColumn . maxAutoWidth ) ) { newWidth = oColumn . maxAutoWidth ; sOverflow = "hidden" ; } // Set to the wider auto-width this . _elTbody . style . display = "none" ; this . _setColumnWidth ( oColumn , newWidth + 'px' , sOverflow ) ; oColumn . _calculatedWidth = newWidth ; this . _elTbody . style . display = "" ; } } }
Helper function calculates and sets a validated width for a Column in a ScrollingDataTable.

@method _validateColumnWidth
@param oColumn {YAHOO.widget.Column} Column instance.
@param elTd {HTMLElement} TD element to validate against.
@private
Helper function calculates and sets a validated width for a Column in a ScrollingDataTable .