比如我有3个下拉框,第一个为所在”国家“,第二个为选择 ”国家“ 后所在的“城市”。而第3个下拉框则是显示,以往我选择的国家和城市,第3个怎么实现呢?
比如第3的效果:   中国 >南京(这些为我以往选择的)
                  英国 >伦敦

解决方案 »

  1.   

    当第二个下拉框值变动时动态增加第三个下拉框的选项如果是需要保存的,则在第二个下拉框值变动时webservice插数据库记录,成功则动态加记录第一个下拉框值变动时是否这么操作视具体要求
      

  2.   

    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
      <ContentTemplate>
      <asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
      AutoPostBack="True">
      </asp:DropDownList>
      </ContentTemplate>
      </asp:UpdatePanel>
      <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
      <ContentTemplate>
      <asp:DropDownList ID="DropDownList2" runat="server" OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged"
      Visible="False" AutoPostBack="True">
      </asp:DropDownList>
      </ContentTemplate>
      </asp:UpdatePanel>
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {}protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
    {//获取数据,dropdownlist3.Items.Insert数据}
      

  3.   

    那就说第三个下拉框吧
    你也知道这些历史记录是要从数据库里取的
    那么用sql语句取到这些“国家、城市”的历史信息,存到DataTable里应该就不用说了吧
    剩下就是一个绑定的问题了假设信息全部已经取到DataTable中,dt为DataTable对象
    dt.Rows.Count有多少,dropdownlist就动态增加多少个ListItem
    每个ListItem的Text为 dt.Rows(i)("国家") & ">" & dt.Rows(i)("城市")
    每个ListItem的Value为 dt.Rows(i)("城市ID")不就可以了么
      

  4.   

    protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
    {
    dropdownlist3.Items.Insert(0,new ListItem(DropDownList1.SelectedValue+
    DropDownList12.SelectedValue,""));
    }
      

  5.   

    $("SELECT2").change(function(){
            selectChange();})
    $("SELECT1").change(function(){
           selectChange();
    }) function selectChange()
     {
        var s1=$("#s1");
        var s2=$("#s2");
        if(s1.val()!=null&&s2.val()!=null){
        $("SELECT3").empty();
        var select3val=s1.text()+">"+s2.val()text();
        $("SELECT3").append("<option value='"+select3val+"'>"+select3val+"</option>");
        }
     }
    jquery 写法
      

  6.   

    Google一下省市级联吧,多的是!
      

  7.   

    用javascript 不是很简单吗?
      

  8.   

    这种叫数据联动问题  你可以先建3个 DropDownList  还要建数据库 数据库3个中间必须有一项是共有的才会出现数据联动的效果然后再给你看后台代码:public partial class linkData_Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {    }
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownList2.DataBind();
            DropDownList3.DataBind();    }
        protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownList3.DataBind();
        }
    }
      

  9.   

    你的国家和城市是联动关系
    这个不说
    你的第三个是因为城市才联动
    当城市变化后,你需要去js遍历第三个,如果出现了城市则不需要做任何数据处理
    如果没有,就ajax将数据插入数据库,同时js在第三个下拉框中插入值思路应该就是这样吧
      

  10.   

    其实就是:当我发布信息的时候选择呢:广东  》佛山。等下次我重新发布信息时,第3个下拉框就会有
    ”广东  》佛山“ 这个选择在里面(而且不会有重复项)。最好的效果是,当我通过第3个下拉框选择时:”广东  》佛山“时,第一个和第二个下拉框能变化成我选的值(这个应该要用jquery)
      

  11.   

    其实你可以这样做的:
    1, 前两个下拉框是联动的,我就不多说了,你已经实现了.\
    2, 第三个下拉框里的内容就是你已经发布过的省市了,你可以从数据库里找出来,比如你发的省数据存在tbState表里,市存在tbCity表里, 发布过的消息存在tbNews表里,这时你就要从tbNews表里找出省市,要用到group来select下,这个sql语句你应该很容易搞定吧,找出tbNews表里用到的省市,就是已经发布过的省市了,再绑定到第三个下拉框就行了.
    思路就是这样了,关键是你想通了就简单了,第三个下拉框里的内容就是你已经发布过的省市,不能从tbState表和tbCity表里直接取,要从tbNews表里取....