用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",
请问,这是怎么回事?
<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",
请问,这是怎么回事?
建议postback回后台处理之前用javascript把Dropdown选中的值放到一个asp.net控件里去,例如隐藏的textBox,然后在后台取这个textbox的值
var o_option = document.createElement("OPTION");
o_option.innerText = "2";
o_option.value = "2";
o_option.selected = true; //增加后马上选择此项目
o_dropdownlist.options.add(o_option);
看看是不是这样的顺序。
可以hidden个控件保存其值
这样的顺序更加不行,连o_option.selected = true;这句执行的效果都没有了其他几位XD的方法是行的,但有没有更好的方法呢?