我用js实现二级城市联动菜单,前台代码
<tr>
<td style="width: 30%; text-align: right">
城市</td>
<td style="text-align: left">
<asp:DropDownList ID="ddl_Province" runat="server">
</asp:DropDownList>
<asp:DropDownList ID="ddl_City" runat="server">
</asp:DropDownList></td>
</tr>
后台代码
protected void Page_Load(object sender, EventArgs e)
{
Init_Admin("user");
ddl_Province.Attributes.Add("onchange", "province_onchange(this)");
ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>window_onload(document.getElementById('" + ddl_Province.ClientID + "'),document.getElementById('" + ddl_City.ClientID + "'));</script>");js代码
function window_onload(province,city){
if (province!=null)
{
provinceObject = province;
cityObject = city;
addProvince();//调用子函数加省份
//provinceObject.options[0].selected = true;
addCity(province);//调用子函数加城市
//cityObject.options[0].selected = true;
}
//定义城市二维数组,第一维分34个省,第二维是各省的城市
cityOp = new Array();
cityOp[0] = new Array(1);
cityOp[0][0]=new Option("北京","1");
cityOp[1] = new Array(1);
cityOp[1][0]=new Option("天津","1");cityOp[2] = new Array(1);
cityOp[2][0]=new Option("上海","1");……………………
省略页面已能实现联动功能,但当保存选择的值是却说未引用实例,我的代码是
sCity = ddl_City.SelectedItem.Text;
而以下代码可以
sCity = ddl_City.SelectedValue;
但sCity获得的值却是" ".我看了页面运行的源代码是
<tr>
<td style="width: 30%; text-align: right">
城市</td>
<td style="text-align: left">
<select name="ddl_Province" id="ddl_Province" onchange="province_onchange(this)"> </select>
<select name="ddl_City" id="ddl_City"> </select></td>
</tr>
里面没有option项,但联动功能的确能实现,请问我应该怎样做才能保存选择的值,如果在后台实现js功能,请问有相关可用代码吗,毕竟整个省市资料自己输入不太可能了。先谢谢了
<tr>
<td style="width: 30%; text-align: right">
城市</td>
<td style="text-align: left">
<asp:DropDownList ID="ddl_Province" runat="server">
</asp:DropDownList>
<asp:DropDownList ID="ddl_City" runat="server">
</asp:DropDownList></td>
</tr>
后台代码
protected void Page_Load(object sender, EventArgs e)
{
Init_Admin("user");
ddl_Province.Attributes.Add("onchange", "province_onchange(this)");
ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>window_onload(document.getElementById('" + ddl_Province.ClientID + "'),document.getElementById('" + ddl_City.ClientID + "'));</script>");js代码
function window_onload(province,city){
if (province!=null)
{
provinceObject = province;
cityObject = city;
addProvince();//调用子函数加省份
//provinceObject.options[0].selected = true;
addCity(province);//调用子函数加城市
//cityObject.options[0].selected = true;
}
//定义城市二维数组,第一维分34个省,第二维是各省的城市
cityOp = new Array();
cityOp[0] = new Array(1);
cityOp[0][0]=new Option("北京","1");
cityOp[1] = new Array(1);
cityOp[1][0]=new Option("天津","1");cityOp[2] = new Array(1);
cityOp[2][0]=new Option("上海","1");……………………
省略页面已能实现联动功能,但当保存选择的值是却说未引用实例,我的代码是
sCity = ddl_City.SelectedItem.Text;
而以下代码可以
sCity = ddl_City.SelectedValue;
但sCity获得的值却是" ".我看了页面运行的源代码是
<tr>
<td style="width: 30%; text-align: right">
城市</td>
<td style="text-align: left">
<select name="ddl_Province" id="ddl_Province" onchange="province_onchange(this)"> </select>
<select name="ddl_City" id="ddl_City"> </select></td>
</tr>
里面没有option项,但联动功能的确能实现,请问我应该怎样做才能保存选择的值,如果在后台实现js功能,请问有相关可用代码吗,毕竟整个省市资料自己输入不太可能了。先谢谢了
解决方案 »
- 大神们 帮帮忙啊 急急急!!!!!!
- 请求的窗体身份验证失败,怎么避免这个提示
- javascript 统计问题
- 关于DATASET筛选后取数据的问题!
- asp.net 网页,我这样画直线怎么不显示呢
- 做网站的时候,是用一些经典的dll好呢,还是自己写代码比较好?
- DataGrid里面实现下载功能
- 数据库用的是oracle,查询的时候日期比较该怎么写!
- XPath 查询问题
- 请问怎样从数据库中读取数据?
- asp.net ajax错误:sys.webforms.PageRequestManagerServerErrorException
- 各位能不能贴个asp.net2.0 的二级联动的代码上来啊,
</asp:DropDownList>
加上“AutoPostBack=true”,行不通,一postback就重新绑定js了,尝试过把
ddl_Province.Attributes.Add("onchange", "province_onchange(this)");
ClientScript.RegisterStartupScript(Page.GetType(), "", " <script> window_onload(document.getElementById('" + ddl_Province.ClientID + "'),document.getElementById('" + ddl_City.ClientID + "')); </script> ");
加在if(!ispostback)里,但这样一回发下拉框就变空,没有绑定数据
string City = Request.From["ddl_City"].ToString()
如果要把生成的全部值都存入数据库的话,暂时还没想到什么好的办法.不过可以用个间接的方法解决
在页面里面添加一个HiddenField控件,然后把DropDownList的项以","字符相隔的字符串保存在HiddenField控件内,然后在后台获取HiddenField控件的Value值,对字符串处理,就可以操作了
//定义城市二维数组,第一维分34个省,第二维是各省的城市
cityOp = new Array();
cityOp[0] = new Array(1);
cityOp[0][0]=new Option("北京","1");
cityOp[1] = new Array(1);
cityOp[1][0]=new Option("天津","1"); cityOp[2] = new Array(1);
cityOp[2][0]=new Option("上海","1"); value部分是数字,但我需要的是该城市名,而且我现在发现我这个js代码和我的asp.net有冲突,不知哪位有实现城市选择二级联动的asp.net代码,有完整的省市资料的,先谢谢了
{
s+=DropDownList1.item[i].innerText
}