分4级类 层层递进,选中一个 第二个绑定,现在是刷新的,写在了SelectedIndexChanged里 每选次都刷新下才出来求不刷新的代码 ,高手们指教下

解决方案 »

  1.   

    用Ajax啊、UpdatePanel   放在里面就行了啊如果不用ajax的话  这个只做参考.. if(!IsPostBack)
    {
    DataSetds=newDataSet();
    stringsql="";
    ds=sda.getDataSet(sql);
    if(ds.Tables[0].Rows.Count>0)
    {
    foreach(DataRowdrinds.Tables[0].Rows)
    {
    ListItemli=newListItem();
    li.Text=dr[0].ToString();
    li.Value=dr[0].ToString();
    this.DropDownList1.Items.Add(li);
    }
    }
    DropDownList2.Items.Clear();
    sql="selectnamefromgc_supervisorwheredeptment='"ds.Tables[0].Rows[0][0].ToString()"'";
    ds=sda.getDataSet(sql);
    if(ds.Tables[0].Rows.Count>0)
    {
    foreach(DataRowdrinds.Tables[0].Rows)
    {
    ListItemli=newListItem();
    li.Text=dr[0].ToString();
    li.Value=dr[0].ToString();
    this.DropDownList2.Items.Add(li);
    }
    }
    }
    protectedvoidDropDownList1_SelectedIndexChanged(objectsender,EventArgse)
    {
    DataSetds=newDataSet();
    DropDownList2.Items.Clear();
    stringsql="select*from*where*='"DropDownList1.SelectedValue"'";
    ds=sda.getDataSet(sql);
    if(ds.Tables[0].Rows.Count>0)
    {
    foreach(DataRowdrinds.Tables[0].Rows)
    {
    ListItemli=newListItem();
    li.Text=dr[0].ToString();
    li.Value=dr[0].ToString();
    this.DropDownList2.Items.Add(li);
    }
    }
    }
      

  2.   


    2003里没有UpdatePanel
    ajax我也没用好
    下面我按2003的例子写的测试程序,当选品牌的时候出现脚本错误,aa 未定义(aa是我测试的是个用户控件)<script language="javascript">
    function changeB()
    {
    aa.BindToddlSeries();}
    </script>
    <SELECT id="ddlBrands" runat="server" onchange="changeB()">
    <OPTION selected></OPTION>
    </SELECT><SELECT id="ddlSeries" runat="server">
    <OPTION selected></OPTION>
    </SELECT>
    private void Page_Load(object sender, System.EventArgs e)
    {
    Ajax.Utility.RegisterTypeForAjax(typeof(db9che.aa));
    if(!Page.IsPostBack)
    {
    BindToddlBrands();
    }
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器
    /// 修改此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void BindToddlBrands()
    {
    bgmanage.bgClass.Car car = new bgmanage.bgClass.Car();
    DataTable dt = car.selBase("bID,bName","tbCarBrands"," order by bType");
    dt.Rows.Add(new object[]{"0","== 品 牌 =="});
    dt.DefaultView.Sort = "bID ASC";
    this.ddlBrands.DataSource = dt.DefaultView;
    this.ddlBrands.DataValueField = "bID";
    this.ddlBrands.DataTextField = "bName";
    this.ddlBrands.DataBind();

    } [Ajax.AjaxMethod()]
    private void BindToddlSeries()
    {
    if(this.ddlBrands.Value=="0")
    {
    return ;
    }
    bgmanage.bgClass.Car car = new bgmanage.bgClass.Car();
    DataTable dt = car.selBase("sID,sName","tbCarSeries"," where bid="+this.ddlBrands.Value);
    dt.Rows.Add(new object[]{"0","== 系 列 =="});
    dt.DefaultView.Sort = "sID ASC";
    this.ddlSeries.DataSource = dt.DefaultView;
    this.ddlSeries.DataValueField = "sID";
    this.ddlSeries.DataTextField = "sName";
    this.ddlSeries.DataBind();

    }
      

  3.   

    2003不支持UpdatePanel吧
    用ajax可以实现的了
    看楼主的写法,你没引用ajaxpro.dll吧
    如果引用了应该是不会报脚本错的
      

  4.   

    /*获取城市*/
    $(document).ready(function(){
         $.ajax({
            type:"get",
            cache:false,
            url:"ajaxpage.aspx?t=getcity",
            dataType:"json",
            success:function(data){
            $("#city").html(data.info);//添加下拉框的option
            }
         })
    })/*联动,根据城市获取其下面的地区*/
    $(document).ready(function(){
        $("#city").change(function(){
         
          $.ajax({
            type:"get",
            cache:false,
            url:"ajaxpage.aspx?t=getdiqu&cityid="+jQuery("#city  option:selected").val()+"",
            dataType:"json",
            success:function(data){
            if(data.sta == 0)
            {
              alert("xx");
            }
            else
            {
               $("#diqu").html(data.info);
               document.getElementById("cityid").value=jQuery("#city  option:selected").val();
            }
            }
         })
        })
    })
      

  5.   

    是用jquery做的 ,不知道能不能帮上忙啦,就是为每一个select添加change事件,每触发一次,就异步去获取该城市下的地区
      

  6.   


    引用了,要不然这句就报错了
     Ajax.Utility.RegisterTypeForAjax(typeof(db9che.aa));
      

  7.   

    XmlHttp实现无刷新三联动下拉框 
      

  8.   

    获取第一个下拉列表值,ajax传后台,返回Json
     再从json取值给每个dropdownlist赋值