利用webservice实现无刷新

这篇博客介绍了一种使用Atlas和Web服务技术来实现在网页上进行无刷新联动操作的方法。通过示例代码展示了如何在选择省份后动态更新城市下拉列表,从而在不重新加载页面的情况下获取并显示相关数据。

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

此文件是利用atlas和webservice技术实现无刷新的联动操作.具体操作过程见代码:

页面文件

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Update.aspx.cs" Inherits="Update" %><%@ Register Assembly="AtlasControlToolkit" Namespace="AtlasControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
    <script language = "javascript" type = "text/javascript" >
   
  
    function getCity(value)
    {
        if(value != null)
        {
            Double.City(value, returnCity);
        }
    }
   
    function returnCity(result)
    {       
   
       //删除旧的纪录
      for (var i=document.getElementById("ddlCity").options.length - 1 ; i>-1; i--)  //记住,要从后面删除起
      {
         document.getElementById("ddlCity").options[i] = null; 
      }       
       
        var cityArr = result.split(";");  //拆分返回的字符串

        //向下拉列表框中添加数据

        var oOption = null;
        for(var i = 0; i < cityArr.length -1; i++)
        {
            if(i == 0)
            {
                oOption = document.createElement("OPTION");
                document.getElementById("ddlCity").options.add(oOption);
                oOption.innerText = "请选择.....";
            }
            else
            {
                oOption = document.createElement("OPTION");
                document.getElementById("ddlCity").options.add(oOption);
                oOption.innerText = cityArr[i].substring(9, cityArr[i].length);
                oOption.value = cityArr[i].substring(0, 9);
            }
        }
    }    
 
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <atlas:ScriptManager ID="scrManage" runat="server" EnableScriptComponents="true">
            <Services>
                <atlas:ServiceReference Path="Double.asmx" />
            </Services>
        </atlas:ScriptManager>
        <div>
            <asp:DropDownList ID="ddlProv" runat="server" >
            </asp:DropDownList>
            <br />
            <asp:DropDownList ID="ddlCity" runat="server">
            </asp:DropDownList>&nbsp;
            <br />

        </div>
    </form>
    <script type="text/xml-script">
        <page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
            <references>
            </references>
            <components>
            </components>
        </page>
    </script>
</body>
</html> 

 

cs文件

public partial class Update : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            LoadProv();
            ddlProv.Attributes.Add("onchange", "getCity(this.value)");
           
        }
       
    }

    private void LoadProv()
    {
        SqlConnection sqlCon = new SqlConnection("server = NIC; database = yourtrip; uid = sa; pwd = 888888");
        SqlCommand sqlCmd = new SqlCommand();
        sqlCmd.Connection = sqlCon;
        sqlCmd.CommandType = CommandType.Text;
        sqlCmd.CommandText = "select code, codename from dd where code like '001%' and len(code) = 6";
        SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
        DataTable dt = new DataTable("temp");
        sqlDa.Fill(dt);
        ddlProv.DataValueField = "code";
        ddlProv.DataTextField = "codename";
        ddlProv.DataSource = dt;
        ddlProv.DataBind();
    }
}

 

webservice代码

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Collections.Generic;
using System.Collections.Specialized;
using AtlasControlToolkit;
using System.Data;
using System.Data.SqlClient;
/// <summary>
/// Double 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Double : System.Web.Services.WebService
{

    [WebMethod]
    public string City(string code)
    {
        SqlConnection sqlCon = new SqlConnection("server = 127.0.0.1; database = text; uid = sa; pwd = 888888");
        SqlCommand sqlCmd = new SqlCommand();
        sqlCmd.Connection = sqlCon;
        sqlCmd.CommandType = CommandType.Text;
        sqlCmd.CommandText = "select code, codename from dd where code like '" + code + "%'";
        SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
        DataTable dt = new DataTable("temp");
        sqlDa.Fill(dt);
        string city = string.Empty;
        foreach(DataRow dr in dt.Rows)
        {
            city += Convert.ToString(dr["code"]) + Convert.ToString(dr["codename"]) + ";";
        }
        return city;
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值