我用Ajax写的三级联动

以下是.aspx代码:

<body>
    <form id="form1" runat="server">
    <div>
        <select id="Select1" style="width: 211px" οnchange="Get_Amb(this.value)">
            <option></option>
        </select><select id="Select2" style="width: 175px" οnchange="Get_ThirdClass(this.value)">
            <option></option>
        </select><select id="Select3" style="width: 186px">
            <option></option>
        </select>

<!--以下的脚本代码必须写在html控件后面,否则页面初始化时会发生脚本错误-->
        <script language="javascript">

                //初始化页面绑定第一个下拉框
                    Get_Stair();
                    //通过脚本调用Ajax方法来初始化第一个下拉框
                    function Get_Stair()
     {     
      var obj_Class = document.getElementById("Select1");
      //TestLiandong是在cs代码中注册的Ajax类,bindSelect1是其中的方法
      var Stair = TestLiandong.bindSelect1().value;
      if(Stair==null||typeof(Stair)!="object")
      {
       return ;
      }
      else
      {
       obj_Class.options.length = 0;
       //给第一个下拉框动态赋值
       for (var i = 0; i < Stair.Rows.length; i++)
       {
        obj_Class.options[i] = new Option(Stair.Rows[i].StairName, Stair.Rows[i].StairID);
       }
       Get_Amb(obj_Class.options[0].value);
      }
     }
     function Get_Amb(stairID)
     {     
      var obj_Amb = document.getElementById("Select2");
      var amb = TestLiandong.bindSelect2(stairID).value;
      if(amb==null||typeof(amb)!="object")
      {
       return ;
      }
      else
      {
       obj_Amb.options.length = 0;
       for (var i = 0; i < amb.Rows.length; i++)
       {
        obj_Amb.options[i] = new Option(amb.Rows[i].AmbName, amb.Rows[i].AmbID);
       }
       Get_ThirdClass(obj_Amb.options[0].value);
      }
     }
     function Get_ThirdClass(AmbID)
     {     
      var obj_ThirdClass = document.getElementById("Select3");
      var thirdClass = TestLiandong.bindSelect3(AmbID).value;
      if(thirdClass==null||typeof(thirdClass)!="object")
      {
       return ;
      }
      else
      {
       obj_ThirdClass.options.length = 0;
       for (var i = 0; i < thirdClass.Rows.length; i++)
       {
        obj_ThirdClass.options[i] = new Option(thirdClass.Rows[i].ThirdClassName, thirdClass.Rows[i].ThirdClassID);
       }
      }
     }</script>
    </div>
    </form>
</body> 

以下是.cs的代码:

protected void Page_Load(object sender, EventArgs e)
    {
        Ajax.Utility.RegisterTypeForAjax(typeof(TestLiandong),this);
    }
    [Ajax.AjaxMethod()]
    public DataTable bindSelect1()
    {
        EN.BLL.admin.E_Stair stair = new EN.BLL.admin.E_Stair();
        return stair.GetList().Tables[0];
    }
    [Ajax.AjaxMethod()]
    public DataTable bindSelect2(int StairID)
    {
        EN.BLL.admin.E_Amb amb = new EN.BLL.admin.E_Amb();
        return amb.GetListByStairID(StairID).Tables[0];
    }
    [Ajax.AjaxMethod()]
    public DataTable bindSelect3(int AmbID)
    {
        EN.BLL.admin.E_ThirdClass thirdClass = new EN.BLL.admin.E_ThirdClass();
        return thirdClass.GetListByAmbID(AmbID).Tables[0];
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值