0

そのため、StackOverflow や他のサイトで見つけられるすべてのことを調査し、試すために 4 日間を費やしました。そして、Ajax AutoCompleteExtender を機能させることができません。私はVS 2012とASP.NETと.NET 4.5用のC#ビルドを使用しています。これが私のコードです:

~/ダッシュボード/Default.aspx

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

   <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolKit" %>

   <ajaxToolKit:ToolkitScriptManager ID="ScriptManager1" runat="server">
       <Services>
           <asp:ServiceReference Path="~/Dashboard/AutoComplete2.asmx" />
       </Services>
   </ajaxToolKit:ToolkitScriptManager>


   <asp:TextBox ID="CarMake_TextBox" runat="server"></asp:TextBox>

   <ajaxToolKit:AutoCompleteExtender 
       ID="CarMake_AutoCompleteExtender" runat="server"
       Enabled="true"
       ServicePath="AutoComplete2.asmx"
       ServiceMethod="GetCarMakeList"
       TargetControlID="CarMake_TextBox"
       MinimumPrefixLength="1" FirstRowSelected="True"
       >
   </ajaxToolKit:AutoCompleteExtender>

</asp:Content>

~/Dashboard/AutoComplete2.asmx.cs (C#)

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace CDC.Dashboard
{
    /// <summary>
    /// Summary description for AutoComplete2
    /// </summary>
    [WebService(Namespace = "http://websiteleaders.com/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
    [System.Web.Script.Services.ScriptService]
    public class AutoComplete2 : System.Web.Services.WebService
    {
        [System.Web.Services.WebMethod]
        [System.Web.Script.Services.ScriptMethod]
        public string[] GetCarMakeList(string prefixText, int count)
        {
            string sql = "Select DISTINCT Make from Car_Makes_Models Where Make LIKE @prefixText";
            SqlDataAdapter da = new SqlDataAdapter(sql, "Data Source=localhost\\SQLEXPRESS;Initial Catalog=CDC;Integrated Security=True");
            da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 50).Value = prefixText + "%";
            DataTable dt = new DataTable();
            da.Fill(dt);
            string[] items = new string[dt.Rows.Count];
            int i = 0;
            foreach (DataRow dr in dt.Rows)
            {
                items.SetValue(dr["Make"].ToString(), i);
                i++;
            }
            return items;
        }
    }
}

私は一生それを機能させることはできません。Web ブラウザで Web サービスを実行して値を入力すると、必要な情報が正しく取得され、文字列の配列として返されます。しかし、AutoCompleteExtender が起動していないようです。

初めて試したとき、うまくいったことは注目に値します。その後、その後の試行の後、そうではありませんでした。私はばかげています。また、IE で実行すると、AJAX ScriptManager (既に使用しています) と 4.0 スクリプトの使用に関する既知のエラー メッセージが表示されます。私は AJAX ツールキットを適切にインストールして参照しています。はい、私のターゲット フレームワークである .NET v4.5 をサポートしています。

4

3 に答える 3

0

bin フォルダー内の ajaxcontroltoolkit.dll を最新バージョンに置き換えてみましたか? VS が時々参照コピーで dll を上書きすることがあることがわかりました。

于 2013-01-09T00:30:14.737 に答える
0

AjaxControlToolkitバージョン 4.1.60919を使用すると正しく動作します

于 2014-05-03T14:54:52.177 に答える
0

ScriptManager以下のコードスニペットを使用してみてください。ToolkitScriptManager

<asp:ScriptManager ID="ScriptManager1" runat="server">
            <Scripts>
                <asp:ScriptReference Name="AjaxControlToolkit.Common.Common.js" Assembly="AjaxControlToolkit" />
                <asp:ScriptReference Name="AjaxControlToolkit.ExtenderBase.BaseScripts.js" Assembly="AjaxControlToolkit" />
            </Scripts>
</asp:ScriptManager>

asp.netフォーラムを参考に

のバージョンも確認してくださいAjaxControlToolkit.dll3.51.0

AjaxControlToolkit.CommonToolkitScripts エラーに関する私の回答を確認してください。これにより、別の .NET フレームワーク シーンで同様の問題を抱えている他のユーザーの問題が解決されました。

于 2013-01-09T05:56:47.690 に答える