深蓝海域KMPRO

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

2002-09-13 14:17

一个用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();

}

#region Component Designer generated code

/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

string dsn = ConfigurationSettings.AppSettings["yitong"];

con=new SqlConnection(dsn);

}

#endregion


/// <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=new Option(a,a);

}

}

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=new Option(a,a);

}

}

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=new Option(a,a);

}

}

//-->

</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>

相关推荐