> #attr#="#structFind(ATTRIBUTES,attr)#"> #colAttr#="#structFind(column,colAttr)#" > /> #ATTRIBUTES.titleMap[column.field].title# только как плейсхолдер для атрибутов, а поле будет получено от колонки ---> #tdAttr#="#structFind(td,tdAttr)#" > #ATTRIBUTES.query[td.field][currentRow]# #column.formatter(ATTRIBUTES.query[column.field][currentRow])# /** * Sorts an array of structures based on a key in the structures. * * @param aofS Array of structures. * @param key Key to sort by. * @param sortOrder Order to sort by, asc or desc. * @param sortType Text, textnocase, or numeric. * @param delim Delimiter used for temporary data storage. Must not exist in data. Defaults to a period. * @return Returns a sorted array. * @author Nathan Dintenfass (nathan@changemedia.com) * @version 1, December 10, 2001 */ function arrayOfStructsSort(aOfS,key){ //by default we'll use an ascending sort var sortOrder = "asc"; //by default, we'll use a textnocase sort var sortType = "textnocase"; //by default, use ascii character 30 as the delim var delim = "."; //make an array to hold the sort stuff var sortArray = arraynew(1); //make an array to return var returnArray = arraynew(1); //grab the number of elements in the array (used in the loops) var count = arrayLen(aOfS); //make a variable to use in the loop var ii = 1; //if there is a 3rd argument, set the sortOrder if(arraylen(arguments) GT 2) sortOrder = arguments[3]; //if there is a 4th argument, set the sortType if(arraylen(arguments) GT 3) sortType = arguments[4]; //if there is a 5th argument, set the delim if(arraylen(arguments) GT 4) delim = arguments[5]; //loop over the array of structs, building the sortArray for(ii = 1; ii lte count; ii = ii + 1) sortArray[ii] = aOfS[ii][key] & delim & ii; //now sort the array arraySort(sortArray,sortType,sortOrder); //now build the return array for(ii = 1; ii lte count; ii = ii + 1) returnArray[ii] = aOfS[listLast(sortArray[ii],delim)]; //return the array return returnArray; }