Jag sha ha en lista som jag fyller i men med hjälp av ord i en databas så ska den börja lite och gissa när man har skrivit två ord. Cazz, Tack Andreas. Jo jag har tänkt på det men då undrar jag bara om det nu inte blir lite väll mycket trafik som gör att sidan blir segare??? Naturigtvis men smakar det så kostar det. Självklart avgör antalet möjliga auto-kompletteringsalternativ vilken metod man väljer med en asp.net lösning men jag skulle definitivt inte vilja ha en post-back för varje ny bokstav man knappade in, enbart om vi snackad om en stor lista möjliga kandidater. Låt oss säga att jag ska göra det i VB.NET med språket VB. någon som har ett bra exempel som har den funktionen?? Cazz, Jajamensan men vill vara lite tydlig där.En fråga för både VB.NET och ASP.NET
Ex jag ska skriva Microsoft och börjar att skriva Mi så ska det kolla i databasen efter alla ord som börjar så och så vidare, en slags autofyllning
språket ska vara i VBSv: En fråga för både VB.NET och ASP.NET
Om du använder en SQL Server (gäller även MSDE) så kan du använda LIKE i ditt SQL tillsammans med % för wildcard, så det blir
SELECT word FROM words WHERE word LIKE 'Mi%'
där du bytar ut din LIKE mot en som du dynamiskt snickrar ihop. Men sen kommer man till hur man skall lösa det lite mer funktionellt. För att hela tiden kunna slå upp i databasen måste du göra ett anrop till webservern varje gång innehållet i din textbox ändras.
Du skulle då kunna använda dig av OnChance eventet på en textbox för att göra detta. För att effektivisera det ytterligare, så kan du använda dig av JavaScript. Säg att Mi% returnerar 5 ord, då har du ett javascript som söker igenom dessa för att hitta bästa. När du inte hittar mer så kan du skriva ditt javascript så att det anropar webserven. Dvs, du försöker minimera antalet anropå till webserver.
Men till stor det är detta ett javascript 'problem' och inte ett VB.NET/ASP.NET problem. Hoppas det löser sig!
Sv: En fråga för både VB.NET och ASP.NET
Att köra så i VB.NET är nog inga problem men samma sak där om det inte risken finns att det blir segare?Sv: En fråga för både VB.NET och ASP.NET
I ditt fall, på en ASP.NET sida så skulle jag istället lägga till en liten knapp som gör en postback och returnerar resultatet i en datalist eller liknande.
I en lokalt installerad applikation har du inte riktigt samma problem med svarstider och liknande. Lösningen kan då bli att du hämtar upp ny data vid keydown (och hämtar inte data då någon anger ett tecken som inte finns i alfabetet). Denna data återanvänder du sedan lokalt då användaren trycker på nästa knapp.
Ex: Användaren söker efter "palindrom" och trycker på "P".
Databasen returnerar alla ord på "P".
Då har du ett dataset med alla P-ord och det använder du sedan då användaren trycker på "a".
Föregående talares idé om ett javascript som letar igenom resultatet skulle jag byta ut till att det istället skulle ske på servern och det mest troliga skulle jag presentera i textboxen.
En annan idé är att dynamiskt fylla på en dropdownlist med resultatet från databasen och överst i den hamnar det ord som här bäst matchning.Sv: En fråga för både VB.NET och ASP.NET
Ett client-side script som själv kan avgöra när ett post-back måste ske är ett myckety smidigare alternativ, speciellt när folk sitter på lite långsammare uppkoppling + det genererar mindre traffik om man har en hyfsat välbesökt sida.
Skall du göra en windows klient så är sccenariot helt annorlunda. Då hade jag använt mig av någon form av data-container, så som en DataTable och dynamiskt gjort anrop mot databasen när det behövdes. Om man skall vara rent krass så skullle bara ett anrop behöva göras till datakällan, så länge inte den första bokstaven i ordet bytas.
Exempel.
Man skriver in M så får man alla ord som börjar på M. Nu finns det ingen anledning att gå till databasen om man skriver in Mi för man har redan dessa ord.
Ned detta i tankarna så är det smigare att då skapa en <b>DataView</b> runt sin datakälla och dynamiskt sätta <b>RowFilter</b> för att filtrera fram kandidater.Sv: En fråga för både VB.NET och ASP.NET
Sv: En fråga för både VB.NET och ASP.NET
Vill bara korrigera en sak. Du vill göra en <b>WinForm</b> applikation, skriven med <b>VB.NET</b> språket. =)Sv: En fråga för både VB.NET och ASP.NET
att göra om en C# kod till VB är ibland rent förbannad svårt :)
Men som jag skrev innan, då får man väll ha en slags SQL-sats i change i en textruta fast är det verkligen bra, och om det inte är det, någon som vet var jag kan få tag i eller läsa ett annat alternativ så är jag tacksam :)