Altså det jeg er vil at jeg vil have en tekstboks, hvor at man skal skrive postnummer i - når så at teksten deri bliver ændret har jeg en metode til at hente byen i min database og skrive den selv by feltet.
Så er det måske ikke lige autocomplete du skal bruge.
Men bare generelt jQuery eller andet library.
Lav en webservice. Rod med noget ajax/event når der er skrevet 4 tal ( da postnummer i DK er 4 tal ) Send et request mod din service og retuner navnet på byen.
Nu er jeg slet ikke inde i javascript, kan man ikke bare skrive et lille javascript over textboxen i .aspx filen hvis at der sker en ændring i tekstfeltet, som derefter kalder en metode i aspx.cs filen? :)
Eller skal man til at lave en webservice for det? Jeg kalder jo bare direkte fra min aspx.cs fil ned i databasen og henter oplysningerne. Så skal bare have at vide hvornår den skal tage teksten og se om postnummeret passer med noget som er i databasen.
Så nej ... du skal lave noget javascript. Det kan du ikke komme uden om. Med mindre du bruger PostBack ... men det er lidt samme problem, bare "aspnet webforms" som har det indbygget.
Okay jeg vidste ikke rigtig hvad der var forskelligt fra asp.net og så asp.net mvc, så jeg tog bare det almindelige. Plejer normalt kun at kode til windows forms :)
Men jo tak jeg kigger på dit link i morgen, er ikke lige ved den computer med koden og databasen på nu.
[WebMethod(EnableSession = false)] public static string postnrChanged(string postnr) { FaellesMetoder faellesMetoder = new FaellesMetoder(); return faellesMetoder.postnrChanged(postnr); }
Jeg har prøvet at sætte breakpoint ind i javascriptet i visual studio, men jeg synes slet ikke jeg ryger inde i det (Ved ikke om man kan det i visualstudio overhovedet med javascripts).
Har også prøvet at skifte til nogle andre end .click som foreksempel .blur
Kan ikke helt se hvad jeg gør forkert, det måske fordi at i eksemplet bruges der et dir og jeg bruger en tekstboks som skal tjekkes. Men kan ikke finde andre måder man skal skrive det på i før .click, eller hvad funktion man nu har på.
I det eksempel du linkede til, til at starte med der anvender han heller ikke noget static - kun til webmetoden.
Der har han: <div id="Result">Click here for the time.</div>
og han angiver result som id, ligesom jeg har: <asp:TextBox ID="TextBoxPostnr" runat="server" MaxLength="4"></asp:TextBox>
og angiver TextBoxPostnr som id.
Du må undskylde hvis det lyder dumt, men jeg har ikke erfaring med javascript, men jeg er glad for din hjælp.
Forresten hvis jeg ser i kildekoden når jeg kører den igennem visual studio står der stadigvæk det samme som i .aspx filen. Btw. så har jeg sat scriptet indenfor <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> </asp:Content>
Har det nogen betydning? er det fint det står i body eller skal det rykkes udenfor?
Problemer at at din TextBox med id'et "TextBoxPostnr" får et hirakisk navn når det bliver rendered. Så på klienten hedder det måske nu: "masterpage$placeholder$panel$TextBoxPostnr"
Dvs når dit javascirpt prøver at finde din tekstbox der hedder "TextBoxPostnr" kan den ikke finde den, for .NET har givet den overstående lange navn, for at være sikker på at alle controls er unikke.
Det er en naming convension som er indbygget i asp.net. Hvis du derimod sætter ClientIdMode="static" på din tekstbox, vil den beholde det ID du giver den, og ikke lave overstående nummer. Nu er du selv ansvarlig for at du ikke har 2 kontrols med samme navn.
Du skal også lige huske at have dit javascirpt ind i en:
Arhh okay, nu forstår jeg det hvad ud mener med id'erne - jeg skulle bare lige have det skåret ud i pap - mange tak :)
Synes ikke rigtig at jeg ryger ind i selve scriptet alligevel. Jeg tilføjede de linje som du skrev før og efter scriptet: $(document).ready(function() { // js her } Men så stod der $(document).ready(function() { som tekst på siden, så rykkede jeg det ind i en js.fil for sig selv (som nok også er "pænere").
Så jeg har findBy.js: $(document).ready(function() { $('TextBoxPostnrUnik').change(function () { $.ajax({ type: "POST", url: "OpretBruger.aspx/postnrChanged", data: "text", contentType: "application/json", dataType: "json", success: function (msg) { $("#TextBoxByUnik").text(msg.d); } }); }); });
og har så dette i headeren, som der blev vist på den side jeg fandt:
Har også husk at tilføje static på begge tekstbokse, ligesom: <asp:TextBox ID="TextBoxPostnrUnik" runat="server" MaxLength="4" ClientIdMode="static" ></asp:TextBox>
Men jeg kører bare med en midlertidig knap der skal trykkes for at byen bliver fundet, indtil efter weekenden :)
Så ikke lige din besked før jeg tog hjem, ellers virkelig fedt at du ville gøre det - men jeg har desværre ikke lige adgang til det før på onsdag fordi vi skal på kursus og der er min vejleder tilbage igen, så kan han nok hjælpe mig. Ellers må jeg jo se om jeg kan få dig til at hjælpe mig med det, hvis jeg ikke har fundet en løsning inden :)
Tak for din hjælp i hvert fald, du må godt smide et svar så du kan få point :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.