不知道大家有没有遇到这样一个问题:
当页面加载的时候用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已经加载完毕;这个问题该怎么解决哪?
当页面加载的时候用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已经加载完毕;这个问题该怎么解决哪?
前台
<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();
因为我想
<asp:ListItem value="广东" selected="selected" > </asp:ListItem >
<asp:ListItem Value= value="广西" selected="selected" > </asp:ListItem >
这些选择通过javascript来添加,即使DropDownList可以添加,那么在后台也不能进行drpdcommunityName.SelectedValue = dt2.Rows[0]["广东?"].ToString(); 操作,我使过了
ddlMedName.options[ddlMedName.selectedIndex].value;
但是客户端添加的值,用服务器端代码是不能立即访问到。需要把数据提交给服务器才行
-----------------------------------------------------
假设从数据库中获得的是“广东”
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】
呵呵
加载玩列表之后,还用js+xmlHttp去服务器端数据库中取 广东 或者 广西的数据。然后用js来判断并选中它。
http://blog.csdn.net/precipitant/archive/2006/07/27/985611.aspx