2012-04-18 11 views
6

Sto riscontrando qualche problema con l'accesso alle variabili, qui in questo caso Setvariable. Quando vado all'interno del ciclo, la variabile non esiste. Qualcuno ha qualche idea su questo. Apprezzo il tuo aiutoLoop e TemplateRepeatIndex nel modello di Dreamweaver

Di seguito è riportata la sezione del mio codice nel modello. Aiuteresti per favore quando avrai una possibilità? Grazie.

<!-- TemplateBeginRepeat name="Component.Fields.section" --> 
@@SetVariable("columnSectionIndex", "${TemplateRepeatIndex}")@@ 
Inline Value @@GetVariable("columnSectionIndex")@@  Variable value can be accessed 
    <!-- TemplateBeginRepeat name ="Field.links" --> 
     Inside Loop Value @@GetVariable("columnSectionIndex")@@ //Not getting declared   variable //value here. Says variable doesn’t exist in ContextVariables. 
     <!-- TemplateBeginRepeat name ="Field.linkimages" --> 
     <!-- TemplateEndRepeat --> 
    <!-- TemplateEndRepeat --> 
<!-- TemplateEndRepeat --> 

uscita

Variable Added Successfully 
Inline Value 0 
Inside Loop Value Variable doesn't exist 

Il mio codice dwt

[TemplateCallable()] 
public string SetVariable(string variableName, string value) 
    { 
     //Remove the old variable and set the new variable 
     if (_Engine.PublishingContext.RenderContext.ContextVariables.Contains(variableName)) 
     { 
      _Engine.PublishingContext.RenderContext.ContextVariables[variableName] = value; 
      return "Variable Modified Successfully"; 
     } 
     else 
     { 
      _Engine.PublishingContext.RenderContext.ContextVariables.Add(variableName, value); 
      return "Variable Added Successfully"; 
     } 
    } 
    [TemplateCallable()] 
    public string GetVariable(string variableName) 
    { 
     //Get the varialbe 
     if (_Engine.PublishingContext.RenderContext.ContextVariables.Contains(variableName)) 
      return _Engine.PublishingContext.RenderContext.ContextVariables[variableName].ToString(); 
     else 
      return "Variable doesn't exist"; 
    } 

risposta

5

problemi con le variabili in loop sono ben noti e anche documented.

Fondamentalmente il primo ciclo è già valutato dal momento in cui si imposta la variabile, quindi si sarà sempre spenti di uno.

  • Set variabile i = 0
  • iterazione del ciclo 1, i = null
  • iterazione del ciclo 2, i = 0
  • Loop iterazione 3, i = 1
  • ecc
+0

Grazie mille Nuno per l'informazione. Questo aiuta! –

+0

È possibile contrassegnarlo come risposta, quindi aiuta gli altri con la stessa domanda. –