我在网上down了一个用jsp脚本和后台代码写的省市联动程序,运行出来省市联动没有任何问题
但是我要做一个搜索,填好关键字后,再选择省份和城市,然后按button1提交到下一个页面中,
但是传值的时候问题出来了,我发现我用DropDownList.SelectedValue.ToString()取出来的省份是我数据库中的省份表中的Id号,而取出来的城市始终是“请选择城市”。下面是我省市联动后台的全部代码:(其中DropDownList1为省份菜单,DropDownList2为城市菜单)
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{
//省市联动
string strconn=ConfigurationSettings.AppSettings["dsn"];
          SqlConnection cn=new SqlConnection(strconn);
cn.Open();
SqlDataAdapter da = new SqlDataAdapter("select Id,shengname from Province",cn);
DataSet ds = new DataSet();
da.Fill(ds);
this.DropDownList1.DataSource = ds;
this.DropDownList1.DataTextField="shengname";
this.DropDownList1.DataValueField="Id";
this.DropDownList1.DataBind();
// 这里是绑定客户端事件,当第一个DropDownList的选项改变时激发下面的事件onchange,这个事件将调用一个客户端方法load()
this.DropDownList1.Attributes.Add("onchange","load(this.options[this.selectedIndex].value)");
//省市联动
}

}
下面是我的button提交事件:
private void Button1_Click(object sender, System.EventArgs e)
{
Session["input"]=this.TextBox1.Text.ToString().Trim();//input存储的是关键字 Session["incity"]=this.DropDownList2.SelectedValue.ToString().Trim();
Session["inprovince"]=this.DropDownList1.SelectedValue.ToString().Trim();
string url;//传关键字值和所在城市到搜索界面上
  url="searchresult.aspx?input="+this.TextBox1.Text.Trim()+"&incity="+this.DropDownList2.SelectedValue.ToString().Trim()+"&inprovince="+this.DropDownList1.SelectedValue.ToString().Trim();
  Response.Redirect(url);
}我现在只是想把城市和省份的中文值分别传给Session["incity"]和Session["inprovince"],但是用
DropDownList1.SelectedValue.ToString()完全不行,我该用什么语句才能把省市联动菜单上选择的省份和城市的中文值取出来啊?急死我了!
大家都过来看看,帮帮我吧!
谢谢了!
在线等~~

解决方案 »

  1.   

    我早就用DropDownList1.SelectedItem.Text试过了,省份值可以取出来,但是城市值始终取的为“请选择城市”,即DropDownList2.SelectedItem.Text没有工作,因而后来我想换DropDownList1.SelectedValue.ToString()试试看,结果省和城市都取不出来了
    我现在就是想让大家帮帮忙看看我选择城市值为什么取不出来?(不管选没有选城市,城市值始终取的为“请选择城市”)
    是后台的省市联动代码错了吗?我实在不晓得错在哪里,大家帮忙看看吧!
    谢谢了!
      

  2.   

    你页面上的按钮是不是一按下去,DropDownList里选好的就又恢复原来的样子了,什么也没有选当然就总是“请选择城市”啦,,你得写脚本把DropDownList里的值保存一下,不然PostBack就没有了~
    maybe~~
      

  3.   

    DropDownList1.EnableViewState=true了吗?
      

  4.   

    是你的代码中没有绑定DropDownList2,加上下面的代码应该就可以了
    SqlDataAdapter da1 = new SqlDataAdapter("select Id,shiname from City",cn);
    DataSet ds1 = new DataSet("City");
    da1.Fill(ds1);
    this.DropDownList2.DataSource=ds1;
    this.DropDownList2.DataTextField="shiname";
    this.DropDownList2.DataValueField="Id";
    this.DropDownList2.DataBind();