Hej på er! Varför inte anropa web servicen på samma sätt som PopulateExtender-kontrollen och sedan spara ner det som returneras? Det är faktiskt så jag har löst det just nu men jag ska förklara varför det inte är en så bra lösning i det här fallet: Vad är det som tar sådan tid? 50 anrop till en web service är ju inte särskilt mycket, så jag antar att fördröjningen inte beror på bandbredden? Om logiken är extremt komplex kanske du bör använda cachning? Logiken är inte alls speciellt komplex som synes nedan: Jag är inte så haj på caching: Det här anropet görs från en webservice. Hur lägger jag in resultatet i cachen så jag sedan kommer åt den från mitt webbformulär? Du bör använda ditt Page-objekts cachesamling (med andra ord "this.Cache[...]"). Där kan du lägga till saker i cachen och även ange hur/när cacheobjekt ska "gå ut". Att lägga till saker i cachen är ungefär som att lägga till saker i applikations- eller sessionsvariabler. Du kan alltså lägga till vilka objekt som helst. Jag använder mig nu av följande kod: Kolla in följande: Tack ted för all din hjälp!Fånga resultat från AJAX dynamicPopulate i asp.net
Jag använder mig av populate extender i ajaxcontroltoolkit för att hämta information från en webservice. Nu skulle jag vilja spara resultatet som visas i panelen genom att trycka på en knapp. Hur kommer jag åt vad som står i panelen?
Jag vet att infon i panelen försvinner vid en postback. Går det att fånga den innan dess?Sv: Fånga resultat från AJAX dynamicPopulate i asp.net
Detta kan du antingen göra på klientsidan eller på serversidan (genom att i så fall använda textrutans värde och anropa web servicen med det).
Lite info om hur man anropar web services med JavaScript på klientsidan: http://www.tednyberg.com/Default.aspx?id=41Sv:Fånga resultat från AJAX dynamicPopulate i asp.net
Användaren har ett formulär med möjlighet att fylla i 50 olika textboxar. När anv. har fyllt i 10 tecken i en textbox (ett ID) triggar ett javascript dynamicpopulateextendern som kopplar upp sig mot en webservice och returnerar ett namn i en panel till höger om textboxen.
När anv har fyllt i maximalt 50 olika textboxar så klickar han på att spara. När han gör det går applikationen genom varje textbox, kollar om det finns ett ID ifyllt, i så fall anropas webservicen(IGEN fast det egentligen finns ett namn i panelen!) och returnerar namnet.
Om alla textboxarna är ifyllda blir det otroligt mycket trafik till webservicen och det tar nästan en halvminut att spara.
Det måste ju finnas en enklare lösning på det här problemet?Sv: Fånga resultat från AJAX dynamicPopulate i asp.net
Sv:Fånga resultat från AJAX dynamicPopulate i asp.net
<code>
'webbreference
Dim member As Member2
Dim memberheader As New gitsys.SoapAuthenticationHeader()
memberheader.user = "******"
memberheader.password = "*****"
member.SoapAuthenticationHeaderValue = memberheader
Dim matrikelData As GolfStatusData
matrikelData = member.GetMemberGolfStatusData(contextKey)
Return matrikelData.LastName & " " & matrikelData.FirstName
</code>
Det blir 100 anrop för jag hämtar även ut information om klubbtillhörighet. Men om inte heller det ses som speciellt många anrop och logiken inte är komplex, vad kan det då vara som gör att det tar sådan tid? Bandbredden kan jag inte tänka mig har någon som helst påverkan.Sv: Fånga resultat från AJAX dynamicPopulate i asp.net
Testat lite så här:
<code>
Dim cachen As New System.Web.Caching.Cache
Dim label1 As New Label
labelen.Text = "hej"
cachen.Insert("test", label1)
</code>
Men då får jag felet "Object reference not set to an instance of an object".Sv:Fånga resultat från AJAX dynamicPopulate i asp.net
Sv: Fånga resultat från AJAX dynamicPopulate i asp.net
<code>
HttpRuntime.Cache.Insert(contextKey & "spelare", label_spelare, Nothing, DateTime.Now.AddHours(12), TimeSpan.Zero)
</code>
Det hamnar ju på serverns cache, men när man kör med page, då är det klientens cache den hamnar i, eller har jag fel? Är det lämpligare att köra med page i så fall?
Hur skulle det se ut i vb....?Sv:Fånga resultat från AJAX dynamicPopulate i asp.net
http://aspnet.4guysfromrolla.com/articles/022802-1.2.aspx
Där hittar du en bra förklaring till cachning i ASP.NET!Sv: Fånga resultat från AJAX dynamicPopulate i asp.net
Utan dig hade jag nog inte tänkt på att kolla på cachning :)