一个用webservice behavior实现的三级联动下拉列表框

本文介绍了一种使用WebService实现的三级联动下拉列表组件。该组件通过前后端交互完成动态填充选项,具体包括类别、类型及号码段三个级别的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个用webservice behavior实现的三级联动下拉列表框 

 
 
 
 我做了一个三级联动的下拉列表框,后台用webservice,前台用webservice behavior与后台通讯。请高手们多提改进意见。

server端:(service1.asmx.cs)

using System;
using System.Text;
using System.Configuration;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Web;
using System.Web.Services;

namespace WebService1
{
    
/// <summary>
    
/// Summary description for Service1.
    
/// </summary>

    public class Service1 : System.Web.Services.WebService
    
{
        SqlConnection con;
        

        
public Service1()
        
{
            
//CODEGEN: This call is required by the ASP.NET Web Services Designer
            InitializeComponent();
        }


        
Component Designer generated code

        
/// <summary>
        
/// Clean up any resources being used.
        
/// </summary>

        protected override void Dispose( bool disposing )
        
{
        }



        [WebMethod]
        
public string fenlei()
        
{
            
string str="select distinct substring(code,1,3) as fenlei from jinan ";
            SqlCommand cmd
=new SqlCommand(str,con);            

            cmd.Connection.Open();
            SqlDataReader dr
=cmd.ExecuteReader();
            

            
string s="请选择:";
            
while(dr.Read())
            
{
                s 
+= ","+dr["fenlei"].ToString();
            }

            
return s;
        }


        [WebMethod]
        
public string leixing(string q)
        
{
            
            
string str="select distinct type from jinan where code like '"+q+"%'";
            SqlCommand cmd
=new SqlCommand(str,con);            

            cmd.Connection.Open();
            SqlDataReader dr
=cmd.ExecuteReader();
            

            
string s="请选择:";
            
while(dr.Read())
            
{
                s 
+= ","+dr["type"].ToString();
            }

            
return s;
        }



        [WebMethod]
        
public string haoduan(string q)
        
{
            
string str="select distinct substring(code,4,4) as haoduan from jinan where type='"+q+"'";
            SqlCommand cmd
=new SqlCommand(str,con);            

            cmd.Connection.Open();
            SqlDataReader dr
=cmd.ExecuteReader();
            

            
string s="请选择:";
            
while(dr.Read())
            
{
                s 
+= ","+dr["type"].ToString();
            }

            
return s;
        }





client端(htmlpage1.htm)
 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    
<HEAD>
        
<META NAME="GENERATOR" Content="Microsoft Visual Studio 7.0">
        
<TITLE></TITLE>
        
<script id="clientEventHandlersJS" language="javascript">
<!--
var icallid;
var icallid1;
var icallid2;

function window_onload() {
service.useService(
"/service1.asmx?WSDL","myselect");

icallid
=service.myselect.callService(fenlei,"fenlei");

}


function fenlei(result)
{
var m=result.value;
var a=m.split(",")

for(var i=0;i<a.length;i++)
{
window.s1.options[i]
=new Option(a[i],a[i]);
}

}


function s1_onchange() {
var x=s1.value;
icallid1
=service.myselect.callService(leixing,"leixing",x);
}


function s2_onchange() {
var x=s2.value;
icallid2
=service.myselect.callService(haoduan,"haoduan",x);
}


function leixing(result){
var m=result.value;
var a=m.split(",")

window.s2.length
=0;

for(var i=0;i<a.length;i++)
{
window.s2.options[i]
=new Option(a[i],a[i]);
}

}


function haoduan(result){
var m=result.value;
var a=m.split(",")

window.s3.length
=0;

for(var i=0;i<a.length;i++)
{
window.s3.options[i]
=new Option(a[i],a[i]);
}


}


//-->
        
</script>
    
</HEAD>
    
<BODY onload="return window_onload()">
        
<div id="service" style="behavior:url(webservice.htc)">
        
</div>
        
<select id="s1" onchange="return s1_onchange()"> </select><select id="s2" onchange="return s2_onchange()"></select>
        
<select id="s3"></select>
</HTML>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值