博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

三级联动

Posted on 2008-04-01 10:15  周末  阅读(651)  评论(0编辑  收藏  举报
<body>
    
<form id="form1" runat="server">
    
<div>
        
<select id="Select1" style="width: 211px" onchange="Get_Amb(this.value)">
            
<option></option>
        
</select><select id="Select2" style="width: 175px" onchange="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];
    }