C# Ajax控制工具包自动完成扩展程序
我遵循了这个指南(http://www.asp.net/ajaxlibrary/act_AutoComplete_simple.ashx)使用AutoCompleteExtender,它可以工作,但是在我的大型项目中实现时,我看不出有什么不同。将扩展程序嵌套在表元素中是否有问题 无论如何,我有一个自动完成扩展器调用教程中的dumbby方法,只是为了开始。不使用Web服务,而只是一种方法(如指南中所示)。页面使用母版页,是否已知会导致问题?这是标题C# Ajax控制工具包自动完成扩展程序,c#,asp.net,.net,autocomplete,ajaxcontroltoolkit,C#,Asp.net,.net,Autocomplete,Ajaxcontroltoolkit,我遵循了这个指南(http://www.asp.net/ajaxlibrary/act_AutoComplete_simple.ashx)使用AutoCompleteExtender,它可以工作,但是在我的大型项目中实现时,我看不出有什么不同。将扩展程序嵌套在表元素中是否有问题 无论如何,我有一个自动完成扩展器调用教程中的dumbby方法,只是为了开始。不使用Web服务,而只是一种方法(如指南中所示)。页面使用母版页,是否已知会导致问题?这是标题 <%@ Page Title="Repor
<%@ Page Title="Report" Language="C#" MasterPageFile="~/Doctors/MasterPage.master" AutoEventWireup="true" CodeFile="generateReport.aspx.cs" Inherits="Doctors_generateReport"
maintainScrollPositionOnPostBack="true" %>
<style>...</style>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
<asp:toolkitscriptmanager ID="ToolkitScriptManager1" runat="server" >
</asp:toolkitscriptmanager>
<p class="headingStyle"><strong><em>Clinical Report</em></strong></p>
<table>
编辑1:
这个问题是类似的(http://stackoverflow.com/questions/791361/trying-to-get-a-simple-example-of-asp-net-ajax-dropdownlist-autocomplete-extende?rq=1)但和演示一样,它可以自己工作,但在我的应用程序中不能
因此,它们必须是母版页或web.config中正在改变工具箱行为的某些设置。有什么想法吗
编辑2:
我刚刚试着将ToolScriptManager放在母版页中-没有骰子;而且。。。
增加
到ToolScriptManager-仍然没有骰子
web.config中的最后一个相关代码段:
<pages>
<controls>
<add tagPrefix="asp" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit"/>
</controls>
</pages>
<identity impersonate="true"/>
我放弃了Ajax控件工具包。这里有一个jQuery解决方案(明显比控件工具包快…在它停止工作之前!!): 并将这些放在scriptManager中:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>
<link rel="Stylesheet" href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css" />
在我的解决方案中,我使用Web服务调用一个函数来实现自动完成 假设已正确安装AjaxControlToolKit,请按照以下步骤操作 在母版页中 1。在.aspx页面顶部添加以下行
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
2。在form id=“form1”runat=“server”之后添加以下行
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/AutoComplete.asmx" />
</Services>
</asp:ToolkitScriptManager>
3。添加文本框和AutoCompleteXtender
<asp:TextBox ID="tbSearch" runat="server"></asp:TextBox>
<asp:AutoCompleteExtender
TargetControlID="tbSearch"
ServicePath="AutoComplete.asmx"
ServiceMethod="GetCompletionList"
MinimumPrefixLength="3"
CompletionInterval="100"
CompletionSetCount="5"
EnableCaching="false"
CompletionListCssClass="CompletionList"
CompletionListItemCssClass="CompletionListItem"
CompletionListHighlightedItemCssClass="CompletionListHighlightedItem"
UseContextKey="True"
ID="AutoCompleteExtender1"
runat="server"></asp:AutoCompleteExtender>
4。创建Web服务
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
解决方案资源管理器->右Clic->添加新项目…->Web服务(我将其发回AutoComplete.asmx),然后按Add按钮
在Web服务AutoComplete.asmx中
5。打开AutoComplete.vb文件并取消对以下行的注释
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/AutoComplete.asmx" />
</Services>
</asp:ToolkitScriptManager>
”——
在VB中,这一行默认为注释,它是允许使用ASP.NET AJAX从脚本调用Web服务所必需的
6。添加名为公共函数GetCompletionList的asp:AutoCompleteXtender服务方法
<System.Web.Services.WebMethod()>
<System.Web.Script.Services.ScriptMethodAttribute()>
Public Function GetCompletionList(ByVal prefixText As String, ByVal count As Integer, ByVal contextKey As String) As String()
' Create array of movies
Dim movies() As String = {"Star Wars", "Star Wars 1", "Star Wars 2", "Star Trek 3", "Star Wars", "Star Wars", "Superman", "Super woman", "Memento", "Shrek", "Shrek II"}
' Return matching movies
Return (
From m In movies
Where m.StartsWith(prefixText, StringComparison.CurrentCultureIgnoreCase)
Select m).Take(count).ToArray()
End Function
公共函数GetCompletionList(ByVal prefixText作为字符串,ByVal count作为整数,ByVal contextKey作为字符串)作为字符串()
'创建一系列电影
暗淡的电影()如字符串={“星球大战”、“星球大战1”、“星球大战2”、“星际迷航3”、“星球大战”、“星球大战”、“超人”、“超级女人”、“纪念品”、“史莱克”、“史莱克II”}
'返回匹配的电影
返回(
从我的电影
其中m.StartsWith(prefixText,StringComparison.CurrentCultureIgnoreCase)
选择m).Take(count).ToArray()
端函数
注意:注意
<System.Web.Services.WebMethod()>
及
刷新网页并进行测试
我希望能帮助你和未来的其他人。GetCompletionList4是否与你的项目完全相同?方法内容所在的位置缺少括号。
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/AutoComplete.asmx" />
</Services>
</asp:ToolkitScriptManager>
<asp:TextBox ID="tbSearch" runat="server"></asp:TextBox>
<asp:AutoCompleteExtender
TargetControlID="tbSearch"
ServicePath="AutoComplete.asmx"
ServiceMethod="GetCompletionList"
MinimumPrefixLength="3"
CompletionInterval="100"
CompletionSetCount="5"
EnableCaching="false"
CompletionListCssClass="CompletionList"
CompletionListItemCssClass="CompletionListItem"
CompletionListHighlightedItemCssClass="CompletionListHighlightedItem"
UseContextKey="True"
ID="AutoCompleteExtender1"
runat="server"></asp:AutoCompleteExtender>
<System.Web.Services.WebMethod()>
<System.Web.Script.Services.ScriptMethodAttribute()>
Public Function GetCompletionList(ByVal prefixText As String, ByVal count As Integer, ByVal contextKey As String) As String()
' Create array of movies
Dim movies() As String = {"Star Wars", "Star Wars 1", "Star Wars 2", "Star Trek 3", "Star Wars", "Star Wars", "Superman", "Super woman", "Memento", "Shrek", "Shrek II"}
' Return matching movies
Return (
From m In movies
Where m.StartsWith(prefixText, StringComparison.CurrentCultureIgnoreCase)
Select m).Take(count).ToArray()
End Function
<System.Web.Services.WebMethod()>
<System.Web.Script.Services.ScriptMethodAttribute()>