页面上有两个服务器控件listbox,a存储的是所有备选字段,绑定数据库,b是用来存储用户从a中选择的字段,选择操作是客户端的javascript实现的,当提交回服务器后,服务器却无法取到选择后的值,不知如何解决原来选择操作是通过服务器端的方法来实现的(如b.Items.Add(a.Items(i))),但是每次从listbox增加或者删除,页面都要刷新,很慢,今天花了力气改为客户端操作,没有想到居然出现了上面的问题,唉高人解答一下呀,不胜感激

解决方案 »

  1.   

    应该不会取不到.实在不行用Request.Form取
      

  2.   

    对,用ajax吧,用js取道值,用ajax实现添加
      

  3.   

    你是如何提交的 ,用的form吗
      

  4.   

    简单的想一想,这种做法肯定是取不到值的。
    JS只是在Client端改变了ListBox的Items项,但是并没有将数据提交到服务器端,服务端怎么可能取到值。
    两个解决办法:
    1、使用Ajax,将增加或者删除的Item通过Ajax传到服务端。
    2、不使用Ajax,可采用隐藏域来纪录你操作的值,在服务端取这个隐藏域的值,我通常使用Hidden控件,当然Runat=“Sever"一定要设置
      

  5.   

    这里有一个类似情况的取值问题,你可以看看,是否有帮助
    http://blog.csdn.net/llxchen/archive/2008/03/12/2171518.aspx
      

  6.   


    页面是有个按钮(服务端控件),点击时候处理用户输入和选择的数据
    试一试   ——恐怕又要多出好多代码唉,惭愧,一直想学ajax,记得那天在按照《ajax基础教程》写了一个最简单的例子,在浏览器中运行居然没有反应,然后就没有激情了,呵呵
    哪个好心人顺便在这里解答一下为什么呀
    我的机器是xp sp2,ie 6.0 sp1
      

  7.   


    这位朋友说得很正确,javascript是在内存中操作了listbox b,这种操作并没有将影响反应到html中,所以你的提交回服务器的操作,也只能获得了listbox b的原来的状态.解决办法,他们也说了.不过,简单一点,可以通过客户端回调来做.简述,新增一个input type="button",在这个onclick(js)事件中获取值,再传递到服务器端.