I have an DHTMLgrid which is loaded through an XML file.
The first column is a link. These links can be in the form:
#fileName#^#Documentname#
#fileName#^document.cfm?=#Documentname#
the fileName can be locationondisk/files/filename or locationondisk/filename
When is sort this column it makes a sortation not on the documentname, but on the resulting URLS. therefore the documentNames are not sorter correcty.
How can i get the sorting of this colum get to sort on the documentnames which i see in the column?
While sorting grid takes getValue() from the cell and filter grid depending on this value. getValue() method from the “link” eXcell type will return string with a full path to your file. To change that behaviour you can implement custom eXcell type. Please see more information here dhtmlx.com/docs/products/dhtmlxG … #grid_cexc
I’ve tried using an Excell type, using a script, but with no good results. This is the code i use:
function eXcell_AOtext(cell){ //excell name is defined here
if (cell){ //default pattern, just copy it
this.cell = cell;
this.grid = this.cell.parentNode.grid;
}
this.edit = function(){} //read-only cell doesn’t have edit method
this.isDisabled = function(){ return true; } // the cell is read-only, that’s why it is always in the disabled state
this.setValue=function(val){
var temp = val.split(“^”);
name = temp[0];
url = temp[1];
target = temp[2];
urlNew = ‘javascript:openDocument("’+url+‘");’;
this.setCValue(“<a name='”+name+“‘href=’”+urlNew+“'>”+name+“”,val);
}
}
eXcell_AOtext.prototype = new eXcell; // nest all other methods from base class
See also attachment what happens
Can you provide a code sample for me?
Hello,
You didn’t define getValue() method for your excell.
Actually get use a ready link excell. dhtmlxgrid_excell_link.js, but in this case you should redefine its getValue() method as you need. Currently it returns following value:
this.cell.firstChild.innerHTML+"^"+this.cell.firstChild.getAttribute(“href”)
It means - link_title^url.
You need to return an url or part of it (this.cell.firstChild.getAttribute(“href”) ) from getValue method
I see what you mean, but i think these custom excells have more to do with the presenation of the link within the cell.
The problem i have is with the sorting of the column. It now sorts on the Link_url string. I want to have it sorting on the Link_title name string. How do i do that?
Thanks in advance.
Sorting routine use getValue method of excell to get text by which row will be sorted.
So you can create a custom getter , which will return any necessary value.
eXcell_AOtext.prototype.getValue=function(){
return this.cell.getAttribute(“name”); //or any other value
};
thanks, this helped me a lot!