WCF for ajaxToolkit:AutoCompleteExtender

2023-11-08 04:59

本文主要是介绍WCF for ajaxToolkit:AutoCompleteExtender,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天学习WCF,做了一个练习,最终的效果:

 

在数据库中创建表,插入数据,写好存储过程:

View Code
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[Catalog]([Catalog_nbr] [smallint] IDENTITY(1,1) NOT NULL,[CatalogName] [nvarchar](100) NOT NULL,CONSTRAINT [PK_Catalog] PRIMARY KEY CLUSTERED 
([Catalog_nbr] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GOINSERT INTO [dbo].[Catalog] VALUES 
(N'1120934567'),
(N'1034577856'),
(N'1145324576'),
(N'1034567889'),
(N'Adfgjfghgg'),
(N'ae45654657'),
(N'1dhjyuryr5'),
(N'brt4543w34'),
(N'brsa2346gh'),
(N'345gthu865'),
(N'3uettr43f5'),
(N'dgewqrytr4'),
(N'dgh6876532')GOSET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GO-- =============================================
-- Author:        Insus.NET
-- Create date: 2013-01-18
-- Description:    Get Catalog data for web services。
-- =============================================
CREATE PROCEDURE [dbo].[usp_Catalog_GetCatalogForWcfService]
(@PrefixText NVARCHAR(MAX),@Count INT
)
AS    
DECLARE @W NVARCHAR(MAX) = @PrefixText + '%'
EXECUTE('SELECT TOP (' + @Count + ') [CatalogName],[Catalog_nbr] FROM [dbo].[Catalog] WHERE [CatalogName] LIKE ''' + @w +'''')GO


在站点下,添加一个目录WCF,然后添加一个WCF Service,取名为Catalog.svc

<%@ ServiceHost Language="C#" Debug="true" Service="Insus.NET.Catalog" CodeBehind="~/App_Code/Catalog.cs" %>

上面的HTML注意一下Service属性,它应该包含命名空间与类别,更多参考:http://www.cnblogs.com/insus/archive/2013/01/19/2867629.html

接下来,我们应该看到App_Code目录有两个文件ICatalog接口与Catalog.cs类文件。

ICatalog
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "ICatalog" in both code and config file together.
namespace Insus.NET
{[ServiceContract]public interface ICatalog{[OperationContract][WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]List<string> GetCatalog(string prefixText, int count);}
}

 

Catalog.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.Text;
using System.Web;
using System.Web.Script.Serialization;// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Catalog" in code, svc and config file together.
namespace Insus.NET
{[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]public class Catalog : ICatalog{BusinessBase objBusinessBase = new BusinessBase();public List<string> GetCatalog(string prefixText, int count){Parameter[] parameter = { new Parameter ("@PrefixText",SqlDbType.NVarChar,-1,prefixText),new Parameter ("@Count",SqlDbType.Int,4,count)};DataTable objDatTable = objBusinessBase.GetDataToDataSet("usp_Catalog_GetCatalogForWcfService", parameter).Tables[0];List<string> catalog = new List<string>();foreach (DataRow dataRow in objDatTable.Rows){string item = AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(dataRow["CatalogName"].ToString(),dataRow["Catalog_nbr"].ToString());catalog.Add(item);}return catalog;}}
}


写好接口与类别之后,在站点添加一个.aspx,如Default.aspx:

View Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><title></title>
</head>
<body><form id="form1" runat="server"><asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager><asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate>Catalog:<asp:TextBox ID="TextBoxCatalog" runat="server"></asp:TextBox><ajaxToolkit:AutoCompleteExtender ServiceMethod="GetCatalog"MinimumPrefixLength="1" ServicePath="~/WCF/Catalog.svc"TargetControlID="TextBoxCatalog"ID="AutoCompleteExtender1" runat="server" FirstRowSelected="false"></ajaxToolkit:AutoCompleteExtender></ContentTemplate></asp:UpdatePanel></form>
</body>
</html>


ok,我们可以试运行一下看看。此时看到的,没有任何效果喔,为何,难道上面写的代码有错误?

哦,原来我们少了在Web.config配置<system.serviceModel>,Insus.NET已经配置好,参考就是了:

Web.config
<?xml version="1.0"?><!--For more information on how to configure your ASP.NET application, please visithttp://go.microsoft.com/fwlink/?LinkId=169433--><configuration><connectionStrings><add name="InsusConnectionString" connectionString="Server=127.0.0.1\SQLSERVER2008R2;Initial Catalog=InsusSite;User ID=siteconnlogin;Password=aa43$98;Packet Size=8192;Max Pool Size=1000;" providerName="System.Data.SqlClient"/></connectionStrings><system.web><compilation debug="false" targetFramework="4.0" /><pages><controls><add namespace="AjaxControlToolkit" assembly="AjaxControlToolkit" tagPrefix="ajaxToolkit"/></controls></pages></system.web><system.serviceModel><behaviors><endpointBehaviors><behavior name="CatalogAspNetAjaxBehavior"><enableWebScript /></behavior>      </endpointBehaviors><serviceBehaviors><behavior name="CatalogBehavior"><serviceMetadata httpGetEnabled="true" /><serviceDebug includeExceptionDetailInFaults="true" /></behavior>        <behavior name=""><serviceMetadata httpGetEnabled="true" /><serviceDebug includeExceptionDetailInFaults="false" /></behavior></serviceBehaviors></behaviors><serviceHostingEnvironment aspNetCompatibilityEnabled="true"multipleSiteBindingsEnabled="true" /><services><service behaviorConfiguration="CatalogBehavior" name="Insus.NET.Catalog"><endpoint address="" binding="webHttpBinding" contract="Insus.NET.ICatalog" behaviorConfiguration="CatalogAspNetAjaxBehavior"><identity><dns value="localhost"/></identity></endpoint><endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/></service>    </services></system.serviceModel>
</configuration>

 

 

转载于:https://www.cnblogs.com/insus/archive/2013/01/19/2867840.html

这篇关于WCF for ajaxToolkit:AutoCompleteExtender的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/367973

相关文章

WCF的一个小Demo

客户机使用浏览器访问服务器A,服务器A为了业务需要与其他各种应用部署在服务器B、C、D....再通过WCF技术互相通信,相互访问...然而面向服务的好处不仅仅在此,他还提供了不同语言不同操作系统的可交互性. ITOO的服务端有许多我们熟悉的东西,例如那些个D层还有B层,陌生的东西就是一个WCF了。现在在我自己看来WCF就是为了避免重复开发,然后提供一个数据通信的接口给大家,让开发

(三)WCF之契约

自从我们接收ITOO项目之后,就必须跟WCF打交道,既然必须直面WCF,我就对WCF进行了研究(还不是很深入,是自己目前的理解)。之前对WCF的一些基础知识进行了简单的介绍,本篇重点来介绍WCF的契约(Contracts)。 [什么是契约?]     生活中:指双方共同定义的协议。     WCF中:任何一个分布式应用程序,它之所以能够互相传递消息,都是事先制定好数据交换规则的

(二)WCF的Binding模型

上篇博客对WCF中的基础知识进行了介绍,先从概念上知道了WCF的一些理论,在abc模型中B是Binding,WCF为我们提供了多种绑定机制,我们先从了解各种绑定机制开始,只有知道之后才能在实践中更好的利用。 【采用Binding原因】     由于服务之间的通信方式多种多样,就有多种可能的通信模式。包括:同步的请求/应答消息,或者异步的“即发即弃”消息;双向消息等。传递消息的

(一)WCF基础

我们近期在做项目的时候用到了WCF,之前已经看了部分视频,对于WCF有了一定的了解,但仅限于能够根据搭建好的框架使用WCF,还不了解。所以就进行了研究,这样既有实践也能增加理论,二者结合,使用起来更胜一筹。     小编先从一些基本的概念开始,从基础一点点开始研究。 【WCF简介】      WCF(Windows Communication Foundation)是由微

【WCF 2】理解WCF框架的简单小实例

导读:上篇博客介绍了WCF框架的整体情况,然后,闲着没事儿,自己做了一个及其简单的WCF框架的例子帮助自己理解。从简单的入手,一步一步深入!本篇博客是介绍怎么用VS2012从头创建一个WCF项目,是一个流程化的介绍,有清楚了解的,建议路过即可!   一、建立WCF服务应用程序   1.1,编写IService类接口   <span style="font-family:KaiTi_

【WCF 1】WCF框架宏观了解

导读:使用WCF框架爱开发项目也有很长一段时间了,最开始的时候,是理解的不深,所以不写博客进行总结。后来是项目赶,发现需要总结的有很多,一直没有把WCF排上日程,尤其是最近研究EF这一块,更是研究了一些ORM框架的东西,包括Hibernate工作原理等。最后,是因为自己都会了,觉得就先不总结了吧,反正都会。现在,正式总结WCF的第一篇博客,先宏观 介绍一下。   在基本概述中,主要是从书本、网

[项目基础]WCF初识小结

一、基本内容     Windows通信基础(Windows Communication Foundation,WCF)是基于windows平台下开发和部署服务的软件开发包(Software Development Kit,SDK)。     思想发展:面向过程——》面向对象——》面向服务 二、契约(协定)     1、分类:         服务契约(Service Contract)

【教程分享】使用WCF搭建企业通用架构

对这个课程有兴趣的朋友可以加我的QQ22748165793和我联系 · 课程讲师:石曼迪 · 课程分类:WCF · 适合人群:初级 · 课时数量:23课时 · 用到技术:WCF、AJAX集成和JSON支持 · 涉及项目:XX连锁在线出版社系统、及时通讯系统、京东商城的订单查询系统、顺丰的物流查询系统、中兴通讯分布式ERP系统 · 更新程度:完成 第一讲:为什么

WinCE使用Webservice或者WCF与后台数据库SQL进行数据信息交互

之前使用过Webservice作为后台服务,WinCE上通过调用webservice来与后台数据库进行数据交互。 速度,稳定性都非常好。而且编程模块化,封装成为Webservice的两个函数即可解决数据库的增,删,查,改四个SQL语句的执行,因此编程非常高效。 有了这样的封装,程序员在编写程序时,主要精力放在逻辑上,分析业务知识上。从而降低程序员的技术门槛,提高编程效率,节省人力成本。

SP2010开发和VS2010专家食谱--第六章节--Web Services和REST(6)--Creating a custom SharePoint WCF service

目前我们已经使用了SharePoint中提供的开箱即用Web Services。有时候SharePoint可以作为数据仓库提供业务数据到外部应用程序。