下拉列表用的是服务器控件DropDownList,但其内容是在客户端通过JS加载的,如下:
document.getElementById("ddlControl").options.add(new Option(text,value));想在后台代码中获取选择下拉列表的值:
string value=ddlControl.SelectedValue;
但获取到的是空,跟踪了下,ddlControl.Items.Count=0;转到前面源文件看了下,也没有常规的option标签;如下:<select name="ddlControl" id="ddlControl" class="dorpList"></select>
但页面确显示出来下拉列表的子项了,现在问题是:怎么在后台获取下拉列表选中的值,为什么在页面的源文件中没有常规的:
<option value="0">--请选择--</option>
<option value="14">140</option>
<option value="15">141</option>
<option value="16">142</option>
<option value="17">143</option>
<option value="18">144</option>
<option value="19">145</option>
<option value="20">146</option>
<option value="21">147</option>
<option value="22">148</option>
<option value="23">149</option>
等,在页面确能够显示出下拉的子项。

解决方案 »

  1.   

    能解释下为什么在源文件中没有那么些<option>标签吗。
      

  2.   

     <script type="text/javascript">
        function AssignValue()
        {
            document.getElementById("ddlControl").options.add(new Option("请选择",0));
            document.getElementById("ddlControl").options.add(new Option("我们",0));
            document.getElementById("ddlControl").options.add(new Option("你们",1));
            document.getElementById("ddlControl").options.add(new Option("他们",2));
        }
        </script><select name="ddlControl" id="ddlControl" class="dorpList" onchange="HiddenField1.value=this.value;">        </select>
            <asp:HiddenField ID="HiddenField1" runat="server" />
    后台pageload页面里面:
    Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script language=\"javascript\">AssignValue();</script>");