ajax+webservice

版本为AJAX November CTP

三个示例分别为:
1 带参数的WS方法
2 不带参数的WS方法
3 参数类型为DataTable的WS方法

一、WebMethod
注意要点:
1 WebMethod类需要添加命名空间 Microsoft.Web.Script.Services,此空间需要引用Microsoft.Web.Preview.dll
2 类声明加入标签 [ScriptService]
3 在Asp.net 2.0里可以直接用DataTable作为返回类型了,但是需要在Web.config文件添加序列化转换器的属性。DataSet、DataTable、DataRow均有转换器

<system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization>
          <converters>
            <add name="DataSetConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter, Microsoft.Web.Preview"/>
            <add name="DataRowConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataRowConverter, Microsoft.Web.Preview"/>
            <add name="DataTableConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter, Microsoft.Web.Preview"/>
          </converters>
        </jsonSerialization>
      </webServices>
    </scripting>
</system.web.extensions>
WEB服务1:WS1

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using Microsoft.Web.Script.Services;
using System.Data;
/** <summary>
/// WS1 的摘要说明
/// </summary>
[WebService(Namespace = "
http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class WS1 : System.Web.Services.WebService {

    public WS1 () {

        //如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }

    [WebMethod]
    public string ServerTime()
    {
        return String.Format("now: {0}", DateTime.Now);
    }

    [WebMethod]
    public DataTable GetDataTable()
    {
        DataTable dt = new DataTable("Person");

        dt.Columns.Add(new DataColumn("Name", typeof(string)));
        dt.Columns.Add(new DataColumn("LastName", typeof(string)));
        dt.Columns.Add(new DataColumn("Email", typeof(string)));

        dt.Rows.Add("kui", "he", "hekui168@163.com");
        dt.Rows.Add("ren", "chao", "
chaoren888@163.com");

        return dt;
    }
}


WEB服务2:WS

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using Microsoft.Web.Script.Services;

/** <summary>
/// WS 的摘要说明
/// </summary>
[WebService(Namespace = "
http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class WS : System.Web.Services.WebService {

    public WS () {

        //如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }

    [WebMethod]
    [ScriptMethod(UseHttpGet = true)]
    public string HelloWorld(String query)
    {
        string inputString = Server.HtmlEncode(query);
        if (!String.IsNullOrEmpty(inputString))
        {
            return String.Format("hello, {0}. ", inputString);
        }
        else
        {
            return "query string is null or empty";
        }
    }

}


二、前台页面:
注意要点:
需要使用的后台WebService的方法均设置在如下位置

        <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReference Path="~/WS.asmx" />
                <asp:ServiceReference Path="~/WS1.asmx" />
            </Services>
        </asp:ScriptManager>
Default页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>

    <script language="javascript" type="text/javascript" src="js.js">
    </script>

</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReference Path="~/WS.asmx" />
                <asp:ServiceReference Path="~/WS1.asmx" />
            </Services>
        </asp:ScriptManager>
        <div>
            <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="dd();return false;" />
            <div id="time">
            </div>
            <div id="List1">
                <asp:DropDownList ID="ddl1" runat="server" Width="187px">
                </asp:DropDownList>
                </div>
           
        </div>
    </form>
</body>
</html>

三、JavaScript程序:
注意要点:
AJAX November CTP 需要用 eval() 方法将其转换成一个DataTable对象(并且要裁掉最前面的"("),而AJAX December CTP 支持以下方法转换“Sys.Preview.Data.DataTable.parseFromJson(result)”

    function dd()
    {
        WS.HelloWorld(  
                         'hekui',
                         function(result)
                         {
                            alert(result);
                         }
                     );
        WS1.ServerTime(
                         function(result)
                         {
                            alert(result);
                            var divTime = document.getElementById("time");
                            divTime.innerHTML = result;
                         }
                     );
       WS1.GetDataTable(
                         function(result)
                         {
                            // 获取到下拉框控件
                            var List = document.getElementById("ddl1");
                                                      
                            //AJAX November CTP 需要用 eval() 方法将其转换成一个DataTable对象(并且要裁掉最前面的"(")
                            var Text= result.dataArray.substring(0,result.dataArray.length -1);           
                            var Table = eval( Text);
                           
                            //AJAX December CTP 支持以下方法转换
//                            var Table = Sys.Preview.Data.DataTable.parseFromJson(result);
                           
                            //清除下拉框原有列表项
                            for (x=List.options.length-1; x > -1; x--)
                            {
                                List.remove(0);
                            }
                           
                            //从获取的DataTable添加数据到下拉框列表项
                            for (x=0; x < Table.length; x++ )
                            {
                                //获取每一行
                                var Row = Table[x];         
                                //创建一个列表项                 
                                var option = document.createElement("option");
                                //列表项显示文本赋值
                                option.text = Row.Name + " " + Row.LastName;  
                                //列表项选项值赋值
                                option.value = Row.Email;                     

                                //判断浏览器类型,进行项目添加    
                                if ( window.navigator.appName.toLowerCase().indexOf("microsoft") > -1)
                                   List.add(option);
                                else
                                   List.add(option, null);         
                            }
                         }
                       );
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习数据扩张_适用于少量数据的深度学习结构

作者&#xff1a;Gorkem Polat编译&#xff1a;ronghuaiyang导读一些最常用的few shot learning的方案介绍及对比。传统的CNNs (AlexNet, VGG, GoogLeNet, ResNet, DenseNet…)在数据集中每个类样本数量较多的情况下表现良好。不幸的是&#xff0c;当你拥有一个小数据集时&…

时间管理

时间管理 时间管理是运用策略和技术&#xff0c;帮助你尽可能有效地利用你的时间。 不仅仅是要将时间用在正确的地方&#xff0c; 而且还要将尽可能有效地加以利用。 目前是如何利用时间的&#xff1a; 意识是时间管理的先决条件。目标提供路线图。选择是难点。 意识 第一条…

基于边缘计算的实时绩效_基于绩效的营销中的三大错误

基于边缘计算的实时绩效We’ve gone through 20% of the 21st century. It’s safe to say digitalization isn’t a new concept anymore. Things are fully or at least mostly online, and they tend to escalate in the digital direction. That’s why it’s important to…

本线程钩子

钩子其实就是调用一下API而已&#xff1a; 1、安装钩子&#xff1a;   SetWindowsHookEx 函数原形&#xff1a;HHOOK SetWindowsHookEx( int idHook, // 钩子类型&#xff0c; HOOKPROC lpfn, // 钩子函数地址…

Maven Web项目解决跨域问题

跨域问题目前笔者所用到的方案大致有三种:jsonp,SpringMVC 4以上注解方式和cros三方过滤器。 Jsonp JSONP(JSON with Padding)是一个非官方的协议&#xff0c;它允许在服务器端集成Script tags返回至客户端&#xff0c;通过javascript callback的形式实现跨域访问&#xff08;这…

为什么Facebook的API以一个循环作为开头?

作者 | Antony Garand译者 | 无明如果你有在浏览器中查看过发给大公司 API 的请求&#xff0c;你可能会注意到&#xff0c;JSON 前面会有一些奇怪的 JavaScript&#xff1a;为什么他们会用这几个字节来让 JSON 失效&#xff1f;为了保护你的数据 如果没有这些字节&#xff0c;那…

城市轨道交通运营票务管理论文_城市轨道交通运营管理专业就业前景怎么样?中职优选告诉你...

​​城市轨道交通运营管理专业&#xff0c;专业就业前景怎么样&#xff1f;就业方向有哪些&#xff1f;有很多同学都感觉很迷忙&#xff0c;为了让更多的同学们了解城市轨道交通运营管理专业的就业前景与就业方向&#xff0c;整理出以下内容希望可以帮助同学们。城市轨道交通运…

计算机视觉对扫描文件分类 OCR

通过计算机视觉对扫描文件分类 一种解决扫描文档分类问题的深度学习方法 在数字经济时代&#xff0c; 银行、保险、治理、医疗、法律等部门仍在处理各种手写票据和扫描文件。在业务生命周期的后期&#xff0c; 手动维护和分类这些文档变得非常繁琐。 对这些非机密文档进行简…

从钱龙数据中读取股票权息信息导入到数据库

从钱龙数据中读取股票权息信息导入到数据库 前面写了如果读股票代码和日线数据&#xff0c;下面是如何读股票的权息信息。 钱龙中权息数据存储在QLDATA/history/shase/weight和QLDATA/history/sznse/weight目录下&#xff0c;每个文件对应一只股票。 与前文一样&#xff0c;只贴…

笑话生成器_爸爸笑话发生器

笑话生成器(If you’re just here for the generated jokes, scroll down to the bottom!)(如果您只是在这里生成笑话&#xff0c;请向下滚动到底部&#xff01;) I thought: what is super easy to build, yet would still get an approving chuckle if someone found it on …

AWS Amplify Console:赋予应用程序快速部署的能力

AWS re:Invent 2018大会发布了很多新功能和服务&#xff0c;包括新的AWS Amplify Console&#xff0c;一种针对移动Web应用程序的持续部署服务。 AWS Amplify Console承诺可以支持快速发布新功能&#xff0c;避免在部署应用程序时停机&#xff0c;并降低同时更新应用程序客户端…

机器学习实践二 -多分类和神经网络

本次练习的任务是使用逻辑归回和神经网络进行识别手写数字&#xff08;form 0 to 9, 自动手写数字问题已经应用非常广泛&#xff0c;比如邮编识别。 使用逻辑回归进行多分类分类 练习2 中的logistic 回归实现了二分类分类问题&#xff0c;现在将进行多分类&#xff0c;one vs…

Hadoop 倒排索引

倒排索引是文档检索系统中最常用的数据结构&#xff0c;被广泛地应用于全文搜索引擎。它主要是用来存储某个单词&#xff08;或词组&#xff09;在一个文档或一组文档中存储位置的映射&#xff0c;即提供了一种根据内容来查找文档的方式。由于不是根据文档来确定文档所包含的内…

koa2异常处理_读 koa2 源码后的一些思考与实践

koa2的特点优势什么是 koa2Nodejs官方api支持的都是callback形式的异步编程模型。问题&#xff1a;callback嵌套问题koa2 是由 Express原班人马打造的&#xff0c;是现在比较流行的基于Node.js平台的web开发框架&#xff0c;Koa 把 Express 中内置的 router、view 等功能都移除…

Bind9的dns解析服务

前言随着原中国电信集团按南北地域分家&#xff0c;新的中国电信和网通集团随即成立&#xff0c;互联网的骨干网也被一分为二了&#xff0c;北有网通、南有电信。从此&#xff0c;细心的网民可以发现&#xff0c;有些经常访问的网站速度一下子慢了下来&#xff0c;有时候还有访…

上凸包和下凸包_使用凸包聚类

上凸包和下凸包I recently came across the article titled High-dimensional data clustering by using local affine/convex hulls by HakanCevikalp in Pattern Recognition Letters. It proposes a novel algorithm to cluster high-dimensional data using local affine/c…

sqlmap手册

sqlmap用户手册 | by WooYun知识库 sqlmap用户手册 当给sqlmap这么一个url (http://192.168.136.131/sqlmap/mysql/get_int.php?id1) 的时候&#xff0c;它会&#xff1a; 1、判断可注入的参数 2、判断可以用那种SQL注入技术来注入 3、识别出哪种数据库 4、根据用户选择&…

幸运三角形 南阳acm491(dfs)

幸运三角形 时间限制&#xff1a;1000 ms | 内存限制&#xff1a;65535 KB 难度&#xff1a;3描述话说有这么一个图形&#xff0c;只有两种符号组成&#xff08;‘’或者‘-’&#xff09;&#xff0c;图形的最上层有n个符号&#xff0c;往下个数依次减一&#xff0c;形成倒置…

jsforim

var isMouseDownfalse;var isFirsttrue;var centerdivObj;var ndiv1;var ndiv2;var ndiv3;var kjX;var kjY; window.οnerrοrfunction(){ return true;}; var thurlhttp://qq.jutoo.net/;var wzId12345; function createDiv(){ var sWscreen.width; var sHscree…

决策树有框架吗_决策框架

决策树有框架吗In a previous post, I mentioned that thinking exhaustively is exhausting! Volatility and uncertainty are ever present and must be factored into our decision making — yet, we often don’t have the time or data to properly account for it.在上一…