不知道大家有没有遇到这样一个问题: 
当页面加载的时候用javascript对一个asp.net添加option选项,比如:
<select name="p_area2" id="p_area2" runat="server" onChange = "select1()">
<option value="广东" selected="selected">广东</option>
<option value="广西" selected="selected">广西</option>
</select> 在页面加载的时候,我从数据库去数据是"广东"还是"广西",如果是"广东"就让广东选中。但是问题就出现了,在后台的page_load方法中是没办法取到options项的,p_area2.options的数量始终是0,即使javascript已经加载完毕;这个问题该怎么解决哪?

解决方案 »

  1.   

    我对.net不熟,想问下.net可以在服务器端和客户端运行的?如果是这样的话,我也学.net了,因为asp都是在服务器端运行,如果我想用asp去读取JS运行的内容就不行了。.net真的可以选择在服务器和客户端运行的?
      

  2.   

    使用DropDownList
    前台
            <asp:DropDownList ID="drpdcommunityName" runat="server">
            <asp:ListItem value="广东" selected="selected" ></asp:ListItem>
            <asp:ListItem Value=  value="广西" selected="selected"></asp:ListItem>
            </asp:DropDownList>
    后台
    //绑定
    drpdcommunityName.DataSource = dt;
    drpdcommunityName.DataTextField = "Community_Name";
    drpdcommunityName.DataValueField = "Community_ID";
    drpdcommunityName.DataBind();
    drpdcommunityName.SelectedValue = dt2.Rows[0]["广东?"].ToString();
      

  3.   

    谢谢楼上的,不过你可能还是不太明白我的问题。
    因为我想
    <asp:ListItem value="广东" selected="selected"  > </asp:ListItem >
    <asp:ListItem Value=  value="广西" selected="selected" > </asp:ListItem >
    这些选择通过javascript来添加,即使DropDownList可以添加,那么在后台也不能进行drpdcommunityName.SelectedValue = dt2.Rows[0]["广东?"].ToString(); 操作,我使过了
      

  4.   

    你在C#里可以使用 Request.Form["p_area2"] 这样的传统方式取得脚本动态添加的值。
      

  5.   

    js对服务端的DropDownList添加了option,但是但那只是页面显示,可是服务器并没有记忆下来的.
      

  6.   

    用js脚本取值
    ddlMedName.options[ddlMedName.selectedIndex].value;
      

  7.   

    理论上 可以从服务器端和 客户端分别访问 runat=server 的控件。但是只是访问。如果服务器端添加的值,客户端时可以访问到。
    但是客户端添加的值,用服务器端代码是不能立即访问到。需要把数据提交给服务器才行
      

  8.   

    我从数据库去数据是"广东"还是"广西",如果是"广东"就让广东选中
    -----------------------------------------------------
    假设从数据库中获得的是“广东”
            string selectedName = "广东";
            string key = "hch";
            string script = 
                "<script language=\"javascript\" type=\"text/javascript\">\n"+
                "function SelectOne(){\n"+
                "var o = document.getElementById(\"p_area2\");\n"+
                "var options = o.getElementsByTagName(\"option\");\n"+
                "for(var i=0;i<options.length;i++){\n"+
                "options[i].selected = \"\";\n"+
                "if(options[i].value == \"" + selectedName + "\"){\n"+            //selectedName 是从数据库中得到的,我在这里假设它是“广东”            "options[i].selected = \"selected\";}}}\n"+
                "SelectOne();</script>\n";
            
            Page.RegisterStartupScript(key, script);
    因为你的js生成select后就要根据数据库来作相应的选择
    所以服务器端代码根本不可能取得值所以我就用了这个笨方法【向页面注册js】
    呵呵
      

  9.   

    建议。
    加载玩列表之后,还用js+xmlHttp去服务器端数据库中取 广东 或者 广西的数据。然后用js来判断并选中它。
    http://blog.csdn.net/precipitant/archive/2006/07/27/985611.aspx