AJAX Control Toolkit AutoVervollständigen-Extender funktioniert nicht
Kann ich nicht bekommen, AJAX CT AutoVervollständigen arbeiten. Das problem ist, wenn ich mit dem schreiben beginnen in das Textfeld passiert nichts. Das erste problem, das ich erlebt hatte war, wenn ich versuchte, Fügen Sie AutoComplete Seite Methode, die ich bekam eine Fehlermeldung: "Cannot create page-Methode "GetCompletionList"...". Dann habe ich versucht, erstellen Sie es manuell, aber trotzdem passiert nichts.
Hier ist die AdministracijaOsoba.aspx-code:
<asp:TextBox ID="txtOsoba" runat="server"></asp:TextBox><asp:AutoCompleteExtender
ID="AutoCompleteExtender1" runat="server" ScriptPath=""
ServiceMethod="GetCompletionList" ServicePath="AdministracijaOsoba.aspx.cs"
TargetControlID="txtOsoba" UseContextKey="True">
</asp:AutoCompleteExtender>
Hier ist die AdministracijaOsoba.aspx.cs-code:
public static string[] GetCompletionList(string prefixText, int count, string contextKey)
{
PravosudnaAkademijaEntities db = new PravosudnaAkademijaEntities();
var osoba = from o in db.osobas
orderby o.osoba_prezime
select new { o.osoba_id, person = o.osoba_prezime + " " + o.osoba_ime };
string[] main = new string[0];
foreach (var o in osoba)
{
if (o.person.StartsWith(prefixText))
{
Array.Resize(ref main, main.Length + 1);
main[main.Length - 1] = o.person.ToString();
if (main.Length == 15)
{
break;
}
}
}
Array.Sort(main);
return main;
}
Nehmen Sie eine Notiz, dass ich mit LINQ to Entities. Jede Hilfe auf diesem würde geschätzt.
Grüße!
Nur eine höfliche code Verbesserungsvorschläge...ich denke, ich würde deklarieren Sie eine Liste<string>, und dann myList.Fügen Sie in die Schleife. Am Ende können Sie wieder myList.ToArray. Dies vermeidet die array-Größe Streit.
InformationsquelleAutor wegelagerer | 2011-03-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deinen code Lesen sollte, wie dies
Da gibt es auch keine Notwendigkeit der Bereitstellung der servicepath-Attribut für Ihre ajax-extender, wenn Sie eine pagescriptmethod.
InformationsquelleAutor askids
Ändern Sie Ihre Erklärung zu diesem:
Fügen Sie diese zu Ihrem AdministracijaOsoba.aspx.cs-code:
InformationsquelleAutor rick schott
Hier ist, was ich in meiner aspx-Seite:
In meinem code-behind-Seite habe ich:
InformationsquelleAutor Eric
Dein code ist fast richtig. Das problem ist nur, dass die service-Pfad sollte nicht Ende mit .aspx.cs aber nur .aspx. Wenn der extender wird auf der gleichen Seite wie die Methode, dann lassen Sie sich servicepath
InformationsquelleAutor Justin
Auch ich habe das gleiche problem. Ich weiß, das ist ein bisschen spät, aber besser spät als nie...
Hier ist das setup, das schließlich arbeitete für mich (mit Ihrer id und den Namen):
Code-Behind ( aspx.cs ):
Code ( .aspx ):
Wie Sie sehen können, die Sie nicht benötigen, um die ScriptPath und ServicePath Eigenschaften, da diese Eigenschaften repräsentieren...
dem erklärt wird, in der AutoVervollständigen-Referenz-Seite. Sie haben Ihre GetCompletionList() definierte Methode im Code-Behind, ich bin momentan davon qualifiziert als "eine Seite" - Methode ist. So, es scheint, würde Sie nur benutzen Sie den Pfad-Eigenschaften wenn wir die Methode in einem anderen Ort, wie beispielsweise einem services.cs oder so etwas in der Art.
InformationsquelleAutor Yetti
entfernen Sie die
static
keyword in Ihrer Methode Erklärung.InformationsquelleAutor Farshid
Vielleicht sind Sie fehlende Angabe MinimumPrefixLength parameter der AutoCompleteExtender.
InformationsquelleAutor Zain Ali
Auto-postback-Eigenschaft der TextBox auf TRUE
InformationsquelleAutor Sarath Avanavu
Ajax autocomplete verwendet einen service-Aufruf verwenden, so können Sie den untenstehenden code in Ihre aspx.cs-Datei, Beachten Sie die
System.Web.Services.WebMethodAttribute()
Attribut, die Methode, die zugänglich für den Service-Aufruf.Alternativ können Sie alle ASMX-service oder WCF-Dienst für die umfassende und zuverlässige service nutzen.
Versuchen Sie bitte immer eine Beschreibung hinzufügen - nicht nur code. Während dies vielleicht die Antwort auf die Frage, wird es leichter sein zu verstehen, für die OP und sonst jemand der Lektüre dieses, wenn Sie mehr details hinzufügen.
InformationsquelleAutor DINESH