在一ascx中,加一select控件,通过js动态填加其option,当aspx.net页面加载此ascx时,能显示ascx中select的值,但却无法在服务器取到ascx中select控件的值.如果静态的填加select的值,则可以取到,为什么啊?

解决方案 »

  1.   

    select是html控件,不能通过代码获取值,除非加上runat=server
      

  2.   

    已经加上runat=server了,如果直接在html代码中加上值,则可以取到,但通过js动态赋值,则取不到,什么原因啊
      

  3.   

    你的option标签可能写错了吧。。首先select控件必须有name属性,然后option的value属性必须赋值。。所以应该是
    <select name="selCoun">
    <option value=""></option>//动态生成的option格式
    </select>热后后台用Request.QueryString("selCoun");来获取这个select的value值。
      

  4.   


    不好意思,最后一句写错了。是Request.Form("selCoun");来获取这个se……
      

  5.   

    前端代码:
    <select id="daysdrp" name="daysdrp" runat="server"></select>
    js:代码
                for (i = 1; i <= day; i++) {
                    var option = document.createElement("option");
                    option.value=i;
                    option.innerText = i;
                    daysdrp.appendChild(option);
                }
    在查看源文件时,
    <select name="MonthAndDay1$daysdrp" id="MonthAndDay1_daysdrp"></select>
    MonthAndDay为ascx的名称,没有列表值,还是取不到啊
      

  6.   

    JS添加的值,用textbox可以取到。
    你可以考虑用一个隐藏在DIV里的textbox来同时存储JS的赋值。
      

  7.   

    已解决,qingYun1029说的对,应该用Request.Form(name),而不应该用Request.Form(ID),我一直用ID,故取不到