Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Ajax控制工具包自动完成扩展程序_C#_Asp.net_.net_Autocomplete_Ajaxcontroltoolkit - Fatal编程技术网

C# Ajax控制工具包自动完成扩展程序

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

我遵循了这个指南(http://www.asp.net/ajaxlibrary/act_AutoComplete_simple.ashx)使用AutoCompleteExtender,它可以工作,但是在我的大型项目中实现时,我看不出有什么不同。将扩展程序嵌套在表元素中是否有问题

无论如何,我有一个自动完成扩展器调用教程中的dumbby方法,只是为了开始。不使用Web服务,而只是一种方法(如指南中所示)。页面使用母版页,是否已知会导致问题?这是标题

<%@ 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()>