From 96c0b5c35463387664db3fa69898d54a929eaa2a Mon Sep 17 00:00:00 2001 From: wei <> Date: Fri, 30 Mar 2007 07:11:11 +0000 Subject: Fixed #538 --- framework/Web/Javascripts/js/debug/prado.js | 52 +++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) (limited to 'framework/Web/Javascripts/js/debug/prado.js') diff --git a/framework/Web/Javascripts/js/debug/prado.js b/framework/Web/Javascripts/js/debug/prado.js index 0e815b99..d1a04f4f 100644 --- a/framework/Web/Javascripts/js/debug/prado.js +++ b/framework/Web/Javascripts/js/debug/prado.js @@ -3648,12 +3648,58 @@ Prado.Element = { var el = $(element); if(!el) return; + var previousGroup = null; + var optGroup=null; if(el && el.tagName.toLowerCase() == "select") { - el.options.length = options.length; - for(var i = 0; i 0) + el.removeChild(el.lastChild); + + var optDom = Prado.Element.createOptions(options); + for(var i = 0; i < optDom.length; i++) + el.appendChild(optDom[i]); + } + }, + + /** + * Create opt-group options from an array of options[0]=text, options[1]=value, options[2]=group + */ + createOptions : function(options) + { + var previousGroup = null; + var optgroup=null; + var result = []; + for(var i = 0; i 2) + { + var group = option[2]; + if(group!=previousGroup) + { + if(previousGroup!=null && optgroup!=null) + { + result.push(optgroup); + previousGroup=null; + optgroup=null; + } + optgroup = document.createElement('optgroup'); + optgroup.label = group; + previousGroup = group; + } + } + var opt = document.createElement('option'); + opt.text = option[0]; + opt.innerText = option[0]; + opt.value = option[1]; + if(optgroup!=null) + optgroup.appendChild(opt); + else + result.push(opt); } + if(optgroup!=null) + result.push(optgroup); + return result; }, /** -- cgit v1.2.3