用asp.net开发web应用程序,语言选择c#在某一个页面上,有一个Dropdown元素,即如下的html代码:
<select id='abc'></select>
刚开始,这个下拉框无内容,它的内容是通过c#代码填充的,如:
abc.Items.add("1")而在页面上有一段javascript代码,也是为abc增加下拉项目的,如下:
o_dropdownlist = document.getElementById("abc");
var o_option = document.createElement("OPTION");
o_dropdownlist.options.add(o_option);
o_option.innerText = "2";
o_option.value = "2";
o_option.selected = true;    //增加后马上选择此项目这时,页面中的abc中显示的是2然后,再执行其中c#中的一段代码,来取abc.Value,但此时取到的是"",而不是"2",
请问,这是怎么回事?

解决方案 »

  1.   

    这样取是不行的
    建议postback回后台处理之前用javascript把Dropdown选中的值放到一个asp.net控件里去,例如隐藏的textBox,然后在后台取这个textbox的值
      

  2.   

    o_dropdownlist = document.getElementById("abc");
    var o_option = document.createElement("OPTION");
    o_option.innerText = "2";
    o_option.value = "2";
    o_option.selected = true;    //增加后马上选择此项目
    o_dropdownlist.options.add(o_option);
    看看是不是这样的顺序。
      

  3.   

    用js增加的没有传到服务器,这样再用服务器取他的count肯定还是以前的.
    可以hidden个控件保存其值
      

  4.   

    回bomb_boy(梦之星):
    这样的顺序更加不行,连o_option.selected = true;这句执行的效果都没有了其他几位XD的方法是行的,但有没有更好的方法呢?