<script language="javascript"> var subcat = new Array(); subcat.push(new Array("0","请选择","0"));

subcat.push(new Array("TV","名称","1"));
subcat.push(new Array("TV","导演","2"));
subcat.push(new Array("TV","主演","3"));

subcat.push(new Array("Film","名称","1"));
subcat.push(new Array("Film","导演","2"));
subcat.push(new Array("Film","主演","3"));

subcat.push(new Array("Music","名称","1"));
subcat.push(new Array("Music","歌手","2"));
subcat.push(new Array("Music","唱片公司","3"));

subcat.push(new Array("New","标题","1"));
subcat.push(new Array("New","内容","2")); subcat.push(new Array("Star","名称","1")); function ChangeClass(ClassValue)
{
document.all["_ctl0:Top1:_ctl0:SearchField"].length = 0;

document.all["_ctl0:Top1:_ctl0:SearchField"].options[0] = new Option("请选择", "0"); var i;
for (i=1;i < subcat.length; i++)
{
if (subcat[i][0] == ClassValue)
{
document.all["_ctl0:Top1:_ctl0:SearchField"].options[document.all["_ctl0:Top1:_ctl0:SearchField"].length] = new Option(subcat[i][1], subcat[i][2]);
}
} }
</script>
<asp:DropDownList id="SearchClass" runat="server">
<asp:ListItem Value="0" Selected="True">请选择</asp:ListItem>
<asp:ListItem Value="TV">电视</asp:ListItem>
<asp:ListItem Value="Film">电影</asp:ListItem>
<asp:ListItem Value="Music">音乐</asp:ListItem>
<asp:ListItem Value="New">新闻</asp:ListItem>
<asp:ListItem Value="Star">明星</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList id="SearchField" runat="server">
<asp:ListItem Value="0">请选择</asp:ListItem>
</asp:DropDownList>
后台代码:
// int searchType = Int32.Parse(searchField.SelectedIndex.ToString());
string tmp = HttpContext.Current.Request["searchField"];试了好几种方法都无法得到searchField里的数据,请问怎么才能得到呢?

解决方案 »

  1.   

    这样是得不到的,你要用javascript就不能用动态添加项。
      

  2.   

    没看出 searchField是服务器控件,换其它方法试试
      

  3.   

    要注意:在下拉框/列表框中,使用客户端脚本添加的数据,在服务端是不予承认的.
    但你可使用request.form[""]的方式来取到值.这是最直接的方法
    也可在页面提交的时候,或下拉框选择的时候,把值写入页面中预先放置的HIDDEN,然后在后台求取.
      

  4.   

    客户端动态添加的数据取不到的
    hchxx说的对
      

  5.   

    最简单的办法就是将你这段为dropdownlist添加项目的代码改到服务端运行!
      

  6.   

    现在问题症结找到了因为我们是用加载用户控件,到客户端以后,控件的ID就变成类似_ctl0:Top1:_ctl0:SearchField这个东东,我在单独的项目里测试过上面的代码,是可以用的,取值用Label1.Text = Request.Params["SearchField"].ToString();就可以了现在这个因为嵌套控件(非常怀疑是这个原因,还不能确定)导致无法得到结果,实际上结果是存在的,我跟踪的时候可以监视得到。就是无法取到变量里。
    to 门槛:
    请问request.form[""]引号里写什么?
    是"searchFiedl"还是searchField.ClientID?
      

  7.   

    谢谢上面各位帮忙,问题解决了,用的Hidden传递的数据