如上如;
要实现的功能是根据条件,动态选择要查看的属性,显示所需查询的某些属性数据。 点击“点此进入排序”即把上面的选择值和左边‘已选属性’的选择值,合并起来,放入到
<s:updownselect>中进行排序。
把上面选择的属性值 和左边 选择的值 已经可以获取,是一个数组,现在就是不知道怎么把选择的值动态放到右边的<s:updownselect>列表中?恳请高手指点!谢谢!!!
<s:updownselect
                   label = "Favourite Countries"
                   list="{}"
                   name="allParamSortList"
                   headerKey=""
                   headerValue="--- 请对下列属性排序 ---"
                   labelposition="top"
                   size="15"
                   theme="simple"
                   emptyOption="true" /><script type="text/javascript">
   
    var url = "where";
    function addListParam()
    {
        url = "where";
        var listValue = new Array(); //创建一个数组存放选择字段
        
        if(document.getElementById("bibie_id").value.length != 0)
        {
             listValue.push('币别');
             url +=  "   bibie = '"+ document.getElementById('bibie_id').value +"'  and";
        }
        if(document.getElementById("accountxingzhi_id").value.length != 0)
        {
             listValue.push('帐户性质');
             url += "   accountxingzhi = '"+ document.getElementById('accountxingzhi_id').value +"'  and";
        }
        alert(url);        var right_list = document.forms[1].rightList; //获取左边的<s:optiontransferselect>值        //var allParamSort = document.forms[1].allParamSortList;
       
        var list = new Array();//定义一个数组,存放总的属性值
        
        //把right_list和listValue的值放入list
        for(var i = 0 ; i < right_list.length ; i++ )  //把<s:optiontransferselect>值放入数组
        {
            if(right_list[i].value != "")
            {
                list.push(right_list[i].value);
            }
        }  
        for(var j = 0 ; j <  listValue.length; j++ )   //把上面的选择值listValue放入数组
        {
           if(listValue[j] != "")
           {
               list.push(listValue[j]);
           }
        }
        alert(list.join("-"));
        document.forms[1].allParamSortList.value = list; // 这样不行。在这里就是要把list放入右边列表中,在<s:updownselect>中值显示出所有list值
        
        return false;
    }
    
</script>

解决方案 »

  1.   

    问题已解决,要把它当成一个select来看,看源代码就知道了,唉,其实很简单
             for(var i = 0 ; i < list.length; i++)
            {
                document.forms[1].allParamSortList.options[i+2] = new Option( list[i] , list[i] ); 
            }
            //var len = document.forms[1].allParamSortList.options.length;
            
      

  2.   

    你的action中如何读到前台所加的新数据