我有一个ajax自动完成扩展程序,一切正常。我的意思是sql程序和其他人都很好,但当我输入文本框的东西时没有发生任何事情。 那是为什么?
这是我的代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Configuration;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
/// <summary>
/// Summary description for WebService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 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 WebService : System.Web.Services.WebService {
string[] arr;
public WebService () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string[] testing(string prefixText)
{
if (prefixText.Length > 0)
{
string sql = "Select * From titles Where title like @title";
SqlDataAdapter da = new SqlDataAdapter(sql, "myconnectionstring is here");
da.SelectCommand.Parameters.Add("@title", 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["title"].ToString(), i);
i++;
}
return items;
}
arr[0] = "";
return arr;
}
}
Html方面:
<%@ Page Title="" Language="C#" MasterPageFile="~/adminpanel/adminpanel.master" AutoEventWireup="true" CodeFile="autocomplete.aspx.cs" Inherits="adminpanel_autocomplete" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
MinimumPrefixLength="1" ServiceMethod="testing" ServicePath="WebService.asmx" TargetControlID="TextBox1" Enabled="true">
</asp:AutoCompleteExtender>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
答案 0 :(得分:0)
我写了我的jQuery AutoComplete处理程序。 所以我解决了我的问题。 但仍然无法找到有关ajax自动完成扩展程序的问题。 感谢。
答案 1 :(得分:0)
您需要从网络服务取消注释以下行:
// [System.Web.Script.Services.ScriptService]