Il nuovo ajax tool kit sembra semplice da usare ma non è sempre chiaro ne l'esempio di Ms, ne l'esito che otteniamo.
Decisamente inatteso è il comportamento dell' AutoComplete, ci sono esempi sparpagliati pseudo casuali, e come sempre
alcuni vanno.. altri no. E' possibile che chi scrive "si fa così" o "vi basta fare così" ( lo faccio anch'io... eh eh ) non documenti
l'ambiente in cui è stato fatto il test.
AjaxControlToolkit ver: 3.0.31106.0
System.Web:2.0.0.0
System.Web.Extensions:3.5.0.0
La vera domanda è perchè tutta sta zozzeria non è allineata ??? c'e' da chiederlo all'installer o a come dover
roccambolescamente installarsi tutto a mano... "fare una cosa fatta bene no ?"
cmq
1) createvi una nuova Web Solution ( non ho provato con il sito web)
2) assicuratevi di mettere...
Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp"
3) nel form..
form id="form1" runat="server"
asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"
/asp:ToolkitScriptManager
asp:TextBox ID="txtInOrderToComplete" runat="server" Text="" /asp:TextBox
asp:AutoCompleteExtender ID="AutoCompleteExtenderDemo" runat="server"
TargetControlID="txtInOrderToComplete" ServiceMethod="GetCompletionList"
MinimumPrefixLength="1" CompletionInterval="1000"
EnableCaching="true" CompletionSetCount="10"
/asp:AutoCompleteExtender
/form
Nota come al soliti il maggiore e il minore sto blog me li cassa !!
4)nel CodeBehind
[System.Web.Services.WebMethod]
public static string[] GetCompletionList(String prefixText, int count)
{
List
return suggetions.ToArray();
}
private static List
{
List
for (int i = 0; i < count; i++)
{
// la vostra logica di estrazione...
}
return suggestions;
}
Tecnicamente parlando non abbiamo implementato un web service per ottenere i dati .. chiaro che la logica
la si può spostare un po dove si vuole .. un po dove più fa comodo...
Ragioniamoci un po sopra...
Perchè statico ???
Perchè se non è statico non funziona.. certo come risposta fa un po acqua, ma sono convinto che la chiamata di un
web services ( o web method ) debba essere statica.
Perchè string[] e non List
Perchè il bind sulla lista ( o pseudo lista) che viene creata come output necessita una array di string[]
Perchè (String prefixText, int count) nella firma ???
Perchè la firma proviene dall'oggetto AutoCompleteExtender, e se non corrisponde... non va.
Posso cambiare ServiceMethod="GetCompletionList" ???
ServiceMethod="GetCompletionList" deve corrispondere al
public static string[] GetCompletionList(String prefixText, int count)
Bene questo è il quanto ..
Per altro non è necessario un update panel, ma funziona anche con lui.
buon divertimento.
Nessun commento:
Posta un commento