Problem With Select_Filter on Link type Excell Column

Hi - I have a grid. One of the columns of the grid is type ‘link’. The column has a select_filter. The data in the column displays as a link properly, with proper text, link url, and rollover. However the items in displayed as choices in the select_filter are the entire link string, not the displayed text for the link. In other words, let’s say I have to rows in the grid and the displayed values for the the column are:

U.S. English
French

and they link to:
somesite.com/english
somesite.com/french

the info passed to the grid is:
U.S. English^http://www.somesite.com/english^_self
French^http://www.somesite.com/french^_self

I want the items in the select filter for the column to display:
U.S. English
French

but instead it displays:
U.S. English^http://www.somesite.com/english^_self
French^http://www.somesite.com/french^_self

How do I get the select_filter to do this?

Thanks in advance,
Michael

Note - my Excell link has been modified as follows:

//v.2.5 build 090904

/*
Copyright DHTMLX LTD. dhtmlx.com
To use this component please contact sales@dhtmlx.com to obtain license
*/

function eXcell_link(cell){this.cell = cell;this.grid = this.cell.parentNode.grid;this.isDisabled=function(){return true};this.edit = function(){};this.getValue = function(){if(this.cell.firstChild.getAttribute)return this.cell.firstChild.innerHTML+"^"+this.cell.firstChild.getAttribute(“href”)
else
return “”};this.setValue = function(val){if((typeof(val)!=“number”) && (!val || val.toString()._dhx_trim()=="")){this.setCValue(" “,valsAr);return (this.cell._clearCell=true)};var valsAr = val.split(”^");if(valsAr.length==1)valsAr[1] = “”;else{if(valsAr.length>1){valsAr[1] = “href=’”+valsAr[1]+"’";if(valsAr.length==3)valsAr[1]+= " target=’"+valsAr[2]+"’";else
valsAr[1]+= " target=’_blank’"}};

this.setCValue("<a “+valsAr[1]+” onclick=’(_isIE?event:arguments[0]).cancelBubble = true;’ onmouseout=‘trapRollout(event||arguments[0],"+this.cell._cellIndex+",""+this.cell.parentNode.idd+"",this.parentNode.parentNode.grid)’ onmouseover=‘trapRollover(event||arguments[0],"+this.cell._cellIndex+",""+this.cell.parentNode.idd+"",this.parentNode.parentNode.grid)’>"+valsAr[0]+"",valsAr);

}};
eXcell_link.prototype = new eXcell;eXcell_link.prototype.getTitle=function(){var z=this.cell.firstChild;return ((z&&z.tagName)?z.getAttribute(“href”):"")};eXcell_link.prototype.getContent=function(){var z=this.cell.firstChild;return ((z&&z.tagName)?z.innerHTML:"")};
//v.2.5 build 090904

/*
Copyright DHTMLX LTD. dhtmlx.com
To use this component please contact sales@dhtmlx.com to obtain license
*/

Try to replace your dhtmlxgrid_excell_link.js file with file from attachment
dhtmlxgrid_excell_link_mod.zip (954 Bytes)

Thank you Olga, that solved the problem.

-Michael

The solution works for the most part, but I’ve discovered that if smart rendering is enabled any row that is not visible (ie. all rows after the first chunk loaded by the grid) has the link syntax in the select filter. Is there a workaround for this? My application needs to use smart rendering (grids with tens of thousands of rows) and some columns must be links. Any help or suggestions would be appreciated!

It possible to

a) write custom filter logic, which will ignore unnecessary part of link data
or
b) pre-render all rows, so existing filtering will work correctly

unfortunately both solutions will be much more slower than default one, and in case of thousands of rows - performance will be not acceptable.

I have the latest build (version 3.0) and had the same issue with a #select_filter and #combo_filter on a column type that was set to lLink showing the xml values of cell: value^link.html I was surprised this was not addressed in the latest update but was able to use the modified js file here to fix the problem.