页面上有个一个二级联动,是省和市,我现在要在后台给它赋值,但是不能直接复制,如果直接赋值的话的,它的联动效果就失效了,有没有人处理过类似的事情?

解决方案 »

  1.   

    既然级联肯定是后台赋值,难道还把所有数据加载到页面用Js来控制啊!
    不清楚你说的直接赋值是什么意思。
    首先,绑定省的数据源,添加省的SelectedIndexChanged事件。同时设定AutoPostBack属性为True,
    在事件中获取选择的省的值,然后再根据这个值去获取市的数据源。如此而已。
    再者提醒下,问问题请讲清楚什么情况下,出现什么错误。有必要的贴出关键代码。还有,别搞错别字!
      

  2.   

    省份你可以直接加好吧,然后在省份下拉中加事件,当选中某一项的时候动态的给市级下拉列表循环加值
    你先循环创建市级项,再用add或者insert方法直接加进去就好了
      

  3.   

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int index =Convert.ToInt32(dlBranchNames.SelectedValue);
            //this.DataSource = BLL.DepartInfoManager.GetChildById(index);
            IList<DepartInfo> departInfos = BLL.DepartInfoManager.GetChildById(index);
            drDepart.Items.Clear();
            foreach (var item in departInfos)
            {
                ListItem li = new ListItem(item.DepartName,item.DepartId.ToString());
                this.drDepart.Items.Add(li);
            }
        }
      

  4.   

    dropdownlist联动
    <asp:ScriptManager ID="ScriptManager1" runat="server">
      </asp:ScriptManager>
      <div>
      <asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>
      <asp:DropDownList ID="ddlLB" runat="server" Width="15%" AutoPostBack="True" OnSelectedIndexChanged="ddlLB_SelectedIndexChanged">
      </asp:DropDownList>
      <asp:DropDownList ID="ddlChild" runat="server" Width="20%">
      </asp:DropDownList>
      </ContentTemplate>
      </asp:UpdatePanel>
      </div>   
    protected void ddlLB_SelectedIndexChanged(object sender, EventArgs e)
      {
      if(this.ddlLB.SelectedValue!=null)
      {  }
      }
    ddlLB可赋值
      

  5.   

     province.Value = db.Rows[0]["Province"].ToString();页面代码
     <select style="WIDTH: 100px" onchange="setcity();" id="province" runat="server" name="province" > 
                                            <option value="">--请选择省份--</option> 
                                            <option value="上海">上海</option> 
                                            <option value="北京">北京</option> 
                                            <option value="天津">天津</option> 
                                            <option value="重庆">重庆</option> 
                                            <option value="河北">河北</option> 
                                            <option value="山西">山西</option> 
                                            <option value="内蒙古">内蒙古</option> 
                                            <option value="辽宁">辽宁</option> 
                                            <option value="吉林">吉林</option> 
                                            <option value="黑龙江">黑龙江</option> 
                                            <option value="江苏">江苏</option> 
                                            <option value="浙江">浙江</option> 
                                            <option value="安徽">安徽</option> 
                                            <option value="福建">福建</option> 
                                            <option value="江西">江西</option> 
                                            <option value="山东">山东</option> 
                                            <option value="河南">河南</option> 
                                            <option value="湖北">湖北</option> 
                                            <option value="湖南">湖南</option> 
                                            <option value="广东">广东</option> 
                                            <option value="广西">广西</option> 
                                            <option value="海南">海南</option> 
                                            <option value="四川">四川</option> 
                                            <option value="贵州">贵州</option> 
                                            <option value="云南">云南</option> 
                                            <option value="西藏">西藏</option> 
                                            <option value="陕西">陕西</option> 
                                            <option value="甘肃">甘肃</option> 
                                            <option value="宁夏">宁夏</option> 
                                            <option value="青海">青海</option> 
                                            <option value="新疆">新疆</option> 
                                            <option value="香港">香港</option> 
                                            <option value="澳门">澳门</option> 
                                            <option value="台湾">台湾</option> 
                                            <option value="国外城市">国外城市</option> 
                                        </select> 
                                        <select style="WIDTH: 100px" name="city" id="city" runat="server">
                                        <option value="">--请选择城市--</option> 
                                    </select> 后代赋值:
      

  6.   

    这样的话,省的值是赋值进去了,但是city的值赋值不进去,因为它的值在JS里面。这样的话我的问题表述清楚了吧?
      

  7.   


    $("#province").change(function(){
    var provinceValue=$("#province").val();
    var url = "../Handler/Logic.ashx?m=getTableConfig&c=" + provinceValue;
    $.ajax({                                                //调用jquery的ajax方法
            type: "POST",                                       //设置ajax方法提交数据的形式
            url: encodeURI(url),
            async: false,                                        //ajax同步
            success: function(msg) {
              for (var i = 0; i < st.Rows.length; i++) {
                    $("#city").append("<option value='" + st.Rows[i].市+ "'>" + st.Rows[i].市+ "</option>");
                }
                        },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                  //错误处理            
                }
            }
    });
      

  8.   

    楼上的代码中var url = "../Handler/Logic.ashx?m=getTableConfig&c=" + provinceValue;
    这句是什么意思?
      

  9.   


    var url = "../Handler/Logic.ashx?m=getTableConfig&c=" + provinceValue;
    是你自己的方法页面,后面的m=getTableConfig 是方法名,c=" + provinceValue是参数,这个要你自己在你的后台页面里面处理
      

  10.   

    provinceValue 后台处理了,能直接传到前台的jquery里面么?
      

  11.   


    provinceValue是前台页面得到的值,传到后台方法里面,再返回结果,绑定市
    可能描述的不好
      

  12.   

    这是Login.ashx页面 用.aspx.cs的也可以<%@ WebHandler Language="C#" Class="Logic" %>using System;
    using System.Web;
    using System.Collections.Generic;
    using eBest.MQS.BusinessLogic.Manager;
    using System.Text.RegularExpressions;
    using System.Data;
    using eBest.MQS.Json;public class Logic : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
         //这里是处理我传过来的参数,第一个参数是方法名,后面的参数都是这个方法的参数,如果你只有一个绑定下拉列表的方法就直接写在里面就可以了,而且这里的方法名必须大写
            context.Response.ContentType = "text/plain";
            if (context.Request.QueryString.Count < 1)
            {
                context.Response.Write("非法调用.");
                return;
            }        string method = context.Request.QueryString[0].ToUpper();
            List<string> args = new List<string>();
            for (int i = 1; i < context.Request.QueryString.Count; i++)
            {
                args.Add(context.Request.QueryString[i]);
            }        try
            {
                context.Response.Write((string)GetType().GetMethod(method, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public).Invoke(this, args.ToArray()));
            }
            catch (Exception er)
            {
                context.Response.Write(er.Message);
            }
        }//方法名必须大写
        public string GETTABLECONFIG(string id)
        {
            DataTable dt = new eBest.MQS.BusinessLogic.TableConfigManager().tableConfig(id).Tables[0];
            return eBest.MQS.Json.JsonLibrary.ToJson(dt);
        }    public bool IsReusable
        {
            get
            {
                return false;
            }
        }}
      

  13.   

    解决了,用的是更简单的方法,在赋值之前在后台先调用一下JS里面的联动方法,这样联动的效果就出来了,然后再匹配城市的值,给它赋值进去就OK了。不过还是要感谢你的代码,受教了
      

  14.   

    蜜MM 我也不会...Help Me!