我在一个asp.net网页上放上两个ListBox ,两个普通的按钮实现javascript的从一个ListBox A的数据转去另一个Listbox B的过程,还有一个服务器控件按钮btnSave,实现将ListBox B中的数据保存到数据库的功能,如果全部用服务器控件实现以上功能的可以的,但是用了Javascript就不行了,按了btnSave,不但不能保存,而且两个ListBox 马上恢复到原来的一样,ListBox B的数据又跑回到ListBox A了,为什么会这样!!!!??? 求解,马上给分

解决方案 »

  1.   

    javaScipr代码是这样的:
    function add()
    {
    var objectA = document.getElementById("lbChildren");
    var objectB = document.getElementById("lbStudents");
    var customOptions;
    for(var i = objectA.options.length -1;i>=0;i--)
    {
    if(objectA.options[i].selected)
    {
    customOptions = document.createElement("OPTION");
    customOptions.text = objectA.options[i].text;
    customOptions.value = objectA.options[i].value;
    objectB.add(customOptions,0);
    objectA.remove(i);
    }
    }
    }
      

  2.   

    你用了js实现了传递功能,这只是表象
    可以用js将select的所有列表保存到一个hide框里面 然后request就可以了
      

  3.   

    listbox的内容是存放在viewstate中的(这句话可能不够准确),用javascript操作只是显示上发生了变化,在发送到服务器后,.net会自动根据viewstate的内容,将内容复原。
      

  4.   

    如果楼主想达到你想要的效果,最好用html,不要用服务器控件了.
      

  5.   

    你用了js实现了传递功能,这只是客户端的操作。到了服务器端listbox的内容会从viewstate
    中还原,你在客户端作的操作自然不起作用。建议不要用js用服务器事件操作listbox
    或参考 snakegod(蛇姬) 的方法。
      

  6.   

    能不能详细一点,我对Javascript 也是一知半解~!