看到AjaxControlToolkit也支持.net4.0了,于是就在vs2010里,做了一个示例。例子本来不少人都写了没什么复杂的,这里贴出来供朋友们参考。最后有个小疑问探讨一下:

前台代码:

1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Search.Default" %>
2
3  <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
4  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5  <html xmlns="http://www.w3.org/1999/xhtml">
6  <head runat="server">
7 <title>My Search</title>
8  </head>
9  <body>
10 <form id="form1" runat="server">
11 <div>
12 <asp:ScriptManager ID="ScriptManager1" runat="server">
13 <Services>
14 <asp:ServiceReference InlineScript="True" Path="AutoCompleteServices.asmx" />
15 </Services>
16 </asp:ScriptManager>
17 </div>
18 <div align="center">
19 <asp:TextBox ID="txtKey" runat="server" Width="600"></asp:TextBox>
20 <asp:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txtKey"
21 Enabled="true" EnableCaching="true" ServicePath="AutoCompleteServices.asmx" ServiceMethod="GetTextString"
22 MinimumPrefixLength="2" CompletionSetCount="5" CompletionInterval="10">
23 </asp:AutoCompleteExtender></div>
24 </form>
25  </body>
26 </html>

web服务代码:

1 using System;
2  using System.Collections.Generic;
3  using System.Linq;
4  using System.Web;
5 using System.Web.Services;
6
7 namespace Search
8 {
9 /// <summary>
10 /// AutoCompleteServices 的摘要说明
11 /// </summary>
12 [System.Web.Script.Services.ScriptService]
13 public class AutoCompleteServices : System.Web.Services.WebService
14 {
15 [WebMethod]
16 public string[] GetTextString(string prefixText, int count)
17 {
18 string[] strArray = new string[count];
19
20 chaonong086Entities db = new chaonong086Entities();
21 using (db)
22 {
23 strArray = (from item in db.PE_Article where item.Title.Contains(prefixText) select item.Title).Take(count).ToArray();
24 }
25 return strArray;
26 }
27 }
28 }
1 <P> </P>

以上我用linq去得到一个数组,从而实现了功能。

起初,一直不出现智能提示,别的朋友说貌似是web服务并未得到触发。后来删掉了web服务里默认存在的hello方法,并删掉了以下两行:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]]

然后智能提示才出现了。这真是一个奇怪的现象。

posted on 2011-06-09 09:43  super mans  阅读(310)  评论(0编辑  收藏  举报