Die Kendo-UI - Geben Sie den parameter name, der auf der dataSource gelesen
Mit Kendo UI, ich bin über ein AutoVervollständigen-Feld, um zu versuchen und abrufen von Daten von meinem server. Es ist auf eine ASP.NET MVC controller mit der folgenden Signatur.
public ActionResult aspect(string term){
//...
}
Dies bedeutet, dass dem Antrag müssen die richtigen parameter in der url. Jetzt das Problem ich bin in Betrieb ist, kann ich nicht entdecken, ein Weg, geben Sie dies in die dataSource mechanik. Ich habe die Dokumentation auf parameterMap Dutzende Male und es macht absolut keine Sinn für mich in keiner Weise.
Dies ist weiterhin kompliziert durch die Tatsache, dass die Seite in Frage, hat eigentlich 10-15 AutoVervollständigen Textfelder zu jeder Zeit, jedes dynamisch erstellte dynamische Identität.
Den code, den ich benutze, so weit ist wie folgt;
$(".autocomplete").kendoAutoComplete({
dataTextField: "Name",
dataSource: {
type: "json",
transport: {
read: {
url: "/search/aspect"
}
}
}
});
So ist es etwas, was ich tun kann, um zu erzählen, wie name der parameter übergibt?
Zu machen, mehr klar, was ich zu tun versuche, wenn ich Taten dies in jQuery, die ich benutzen würde ...
$.ajax({ url: '/search/aspects', data: { term: (insert the data here) } });
Aber wegen der Art, wie all dies funktioniert, gibt es keine "Auswahl", um die autocomplete-input, so kann ich nicht abrufen seinen Wert aus dem input-Formular-element.
Ich bin nicht mit der version des Kendo, ist das MVC Razor-tools. Das Beispiel ist, wo ich begann, aber es ist nicht nützlich für mich, leider.
InformationsquelleAutor Ciel | 2013-09-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aktivieren Sie zunächst die serverseitige Filterung durch das setzen dieser option:
Dann wird der Wert übergeben wird als Parameter in die
transport.parameterMap
Funktion.Wenn Sie log das Objekt übergeben, in dem parameterMap Funktion wie diese:
ist, dann hätte man ein Objekt, das aussieht wie dieses:
So können Sie verwenden Sie diese Option, um den eingegebenen Wert in das AutoVervollständigen-Feld by doing:
Versuchen zu tun, wie Sie gesagt haben, und log das Objekt übergeben durch die Funktion Daten einfach Ausbeuten "{}"
Ich bearbeitet meine Antwort. Ich vergaß auch zu erwähnen, dass Sie benötigen, um
serverFiltering
auf die DataSource, so dass es übergibt den eingegebenen text in diedata()
Funktion. Tut mir Leid, dass.Das hat einige Fortschritte, aber es ist immer noch seltsam verhält. Es versucht, die url .. localhost:60600/search/......ld%5D=Name&filter%5Bfilters%5D%5B0%5D%5BignoreCase%5D=true&_=1379719337398
Ich denke, es ist auch erwähnenswert, dass Sie korrekt waren die sehr erste Zeit, die Sie gebucht. Es ist meine eigene Unzureichende Inkompetenz, die nicht funktioniert hat. Ihr code war makellos, aber ich hatte die action-Methode markiert
[HttpPost]
und nicht[HttpGet]
, so dass es immer einen Fehler. Sie haben keine Fehler gemacht, Sie einfach zeigte mir nicht nur ein, sondern FÜNF Möglichkeiten, das zu vollenden, was ich gefragt wurde. Wenn alles, was Sie sollten Holen eine Medaille für das aufstellen von mit mir.InformationsquelleAutor CodingWithSpike
Ich denke, dass es ein Missverständnis über das Verhältnis zwischen
DataSource
undAutoComplete
.AutoComplete
hat dieinput
und verwendet eineDataSource
für das abrufen der Daten: dieinput
gehören nicht zu denAutoComplete
und als Konsequenz, die Sie nicht bekommen kann dieinput
mit eineDataSource
aus einer Methode, die von derDataSource
(wietransport.read.data
odertransport.parameterMap
).Müssen Sie eindeutig identifizieren, welches element der Eingabe und der Wert, den es enthält.
Was mache ich vorschlagen, ist immer der Wert mit
document.activeElement.value
. Da Sie schreiben es, das element, das den Fokus hat, sollte das element, das Sie verwenden.Würde der code sein:
Alternativ können Sie aktivieren
serverFiltering
und dann Kendo UI links dieinput
Feld mit den filtern Zustand. Der code wäre:CodingWithSpike
bekam es zuerst und ich daher verlieh ihm den Kredit. Ich habe nicht genug Ruf zu upvote verkaufen, aber ich werde mich daran erinnern und kommen zurück, um es, wenn ich. Danke sehr, es ist sehr geschätzt.Auch diese " "Dokument".activeElement.Wert" - Sache ist genial! Danke!!!
mit Dokument.activeElement scheint die option, wie man das input-Feld selbst um weitere Informationen zu erhalten, vielen Dank!
InformationsquelleAutor OnaBai
Bin ich ein wenig verwirrt, als das, was Sie wollen, sind zu tun. Wenn Sie nur versuchen, übergeben Sie die Zeichenfolge term auf dem controller können Sie die Daten festlegen, die:
Soweit ich sagen kann, das autocomplete-widget (oder das datasource-Steuerelement) nicht bietet einen Weg, um den Wert es wird derzeit versucht, zu übergeben. Der einzige Weg den ich gefunden habe, ist es durch spezifische Auswahl, die nicht möglich ist in meiner gegebenen situation.
Ich habe ein bisschen mehr auf die Frage zu versuchen und machen es klarer. Sorry für die Verwirrung.
InformationsquelleAutor ramsey_tm
Danke für die Aufklärung und Hilfe OnaBai. Hier ist der code, ich habe die Arbeit nach Stunden der frustration!
InformationsquelleAutor Gregory Alexander