2017-06-09 3 views
-1

Ich benutze JqueryUI Autocomplete-Widget mit asp.net Ich erstelle eine Klassendatei, die Methode enthalten, die Liste der Suchergebnisse zurückgeben wird. und auf aspx-Seite rief ich alle erforderlichen jquery-Datei. auf Script Teil schreiben i unten Code:Jquery Autocomplete mit ASP.NET Problem

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#txtSearch").autocomplete({ 
      source: function (request, response) { 
       $.ajax({ 
        type: "POST", 
        contentType: "application/json; charset=utf-8", 
        url: "CommonOperation.cs/GetClientName", 
        data: "{'SearchVal':'" + document.getElementById('<%=txtSearch.ClientID%>').value + "'}", 
        dataType: "json", 
        success: function (data) { 
         response(data.d); 
        }, 
        error: function (result) { 
         alert("Error......"); 
        } 
       }); 
      } 
     }); 
    }); 
</script> 

nicht wissen, was Problem ist sie aber, wenn ich laufe es geht immer in Fehlern Teil.

+0

Was ist die Fehlermeldung Sie bekommen? –

+0

Kein Fehler beim Anzeigen der Alarmbox mit Text "Error ......" – WeeZy

+0

Statt "Error ......" zu alarmieren, warum nicht den eigentlichen Fehler anzeigen? Drücken Sie auch F12, gehen Sie zu Netzwerk, führen Sie die automatische Vervollständigung aus, und Sie sollten den problematischen Anruf rot markiert sehen. Durch Klicken darauf erfahren Sie die Anfrage und die Antwort. – Santi

Antwort

0

hier url sollte wie this- sein> url: "CommonOperation.aspx/GetClientName",

+0

aber das ist eine Klassendatei, die ich für eine solche allgemeine Operation erstellt habe – WeeZy

1

Sie können nicht Ihre Web-Methode in einer Klassendatei setzen, wie die Methode selbst Webzugriff sein muss.

Verschieben Sie es auf eine Standard-ASPX-Seite Code-Behind, und verwenden Sie die .aspx Verknüpfung statt .cs.


Eine Alternative wäre einfach eine .asmx zu verwenden sein, und heften sich an dieser Stelle Ihre Klasse. This answer bietet einige Informationen über das:

You could use something like an asmx (ASP.Net web service) that exposes the webmethods. The file is basically just a markup place holder that points at a class file. Contents are just:

<%@ WebService Language="C#" CodeBehind="~/foo/MyClass.cs" Class="MyClass" %> 

Then your class has to inherit from System.Web.Services.WebService and you should be good.

If you do an add file from Visual Studio and add a web service file you can get it to create all this for you.

-1

Geschafft Methode wird statisch sein und erklärt als WebMethod und nennen es von aspx.cs

+0

Anstatt Ihre eigene Antwort zu posten, um zu bestätigen, dass jemand anders gearbeitet hat, sollten Sie stattdessen die ursprüngliche richtige Antwort akzeptieren. – Santi