Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Innehållet i JavaScript arrayer försvinner

Postades av 2008-07-09 16:46:52 - Robin Ridderholt, i forum asp.net generellt, Tråden har 1 Kommentarer och lästs av 980 personer

Jag har ett mycket skumt problem, jag skapar upp ett par stycken javascriptcs arrayer i code-behind vid page_load och registrear dom sedan med Page.ClientScript.RegisterClientScriptBlock. Jag använder sedan arrayerna för att populera olika kontroller.

Jag har en sida som innehåller flera olika usercontrols, det är i en av dessa usercontrols som jag populerar kontrollerna med data från javascriptet. Vid första laddningen av sidan så fungerar allt helt perfekt, men så fort de sker en postback i usercontrolen så försvinner datat i javascripts arrayen. Jag kommer åt arrayen med den är tom. Vad beror detta på?

Kan det ha något att göra med att vid använding av Page.ClientScript.RegisterClientScriptBlock så måste en full postback göras? Eftersom att varje usercontrol består av en updatepanel som innehåller de kontroller som populeras samt genererar postbacks inom updatepaneln. Det som förbryllar mest är egentligen att när datat har "försvunnit" och jag tittar i käll-filen så ligger arryerna där snyggt och prydligt. Jag provade också att i min javascripts-generering-funktion lägga in en funktion som bara visade upp en alert och den går alldeles utmärkt att anropa både före och efter en postback.

Så här ser funktionen som bygger javascriptet ut, vi använder ett genereringsverktyg som heter WMBof så det är därifrån jag får mina List<T> så det kan ni ignorera.

private void BuildJavaScript()
        {
            string roles = TestMethodRoleNames.TestParameters + "." + TestParameterRoleNames.Parameter + "." + ParameterRoleNames.TestParameterUoMs + "." + ParameterUoMRoleNames.UnitOfMeasure + ";";

            List<TestMethodFullContract> lstTestMethodFull = _testMethodFacade.TestMethodGetAll(roles);

           //JavaScriptet börjar byggas här
            StringBuilder javascript = new StringBuilder();
            javascript.Append("var TestMethodArray = new Array();");
            javascript.Append("var ParameterTmpArray = new Array();");
            javascript.Append("var UoMTmpArray = new Array();");
            int arrayCounter = 0;
            int uomCounter = 0;
            int parameterCounter = 0;

            foreach (TestMethodFullContract TestMethodFull in lstTestMethodFull)
            {
                foreach (TestParameterFullContract TestParameter in TestMethodFull.TestParameters)
                {
                    foreach (ParameterUoMFullContract ParameterUoM in TestParameter.Parameter.TestParameterUoMs)
                    {
                        javascript.Append("UoMTmpArray[" + uomCounter.ToString() + "] = new Array('" + ParameterUoM.UnitOfMeasure.ID + "', '" + ParameterUoM.UnitOfMeasure.Name + "');");
                        uomCounter++;
                    }

                    javascript.Append("ParameterTmpArray[" + parameterCounter.ToString() + "] = new Array('" + TestParameter.Parameter.ID + "','" + TestParameter.Parameter.Name + "', UoMTmpArray);");
                    parameterCounter++;
                    javascript.Append("UoMTmpArray = new Array();");
                }

                javascript.Append("TestMethodArray[" + arrayCounter.ToString() + "] = new Array('" + TestMethodFull.ID + "','" + TestMethodFull.Name.Replace("'", "") + "', ParameterTmpArray);");
                javascript.Append("ParameterTmpArray = new Array();");
                arrayCounter++;
                uomCounter = 0;
                parameterCounter = 0;
            }
            javascript.Append("function viewAlert(){alert(TestMethodArray[0]);}");
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "TestMethods", javascript.ToString(), true);
        }


Någon som har förslag på vad som jag kan göra eller inte göra osv?


Svara

Sv: Innehållet i JavaScript arrayer försvinner

Postades av 2008-07-10 14:08:02 - Robin Ridderholt

Löste det hela genom att istället för att göra globala arrayer av det lägga dom i en funktion som returerar den array som innehåller de andra arrayerna.

Lade alltså till:

//Detta högst upp innan deklarationen av arrayerna
javascript.Append("function getArray() {");

//Detta sista innan scriptet registreras
javascript.Append("return TestMethodArray; }");


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 165
27 952
271 704
841
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies