2012-04-18 13 views
6

Tôi đang gặp một số rắc rối khi truy cập các biến, ở đây trong trường hợp này là Setvariable. Khi tôi đi vào vòng lặp bên trong, biến không tồn tại. Ai có sáng kiến ​​cho việc này. Đánh giá cao sự giúp đỡ của bạnLooping và TemplateRepeatIndex trong Dreamweaver mẫu

Dưới đây là phần mã của tôi trong mẫu. Bạn vui lòng giúp đỡ khi bạn có cơ hội? Cảm ơn.

<!-- 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 --> 

Output

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

đang dwt My

[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"; 
    } 

Trả lời

5

Vấn đề với các biến trong vòng cũng được biết đến và thậm chí documented.

Về cơ bản, vòng lặp đầu tiên đã được đánh giá theo thời gian bạn đặt biến, do đó bạn sẽ luôn bị tắt bởi một biến.

  • Set biến i = 0
  • Vòng lặp 1, i = null
  • Vòng lặp 2, i = 0
  • Vòng lặp 3, i = 1
  • vv
+0

Cảm ơn bạn Nuno về thông tin. Những sự giúp đỡ đó! –

+0

Bạn có thể muốn đánh dấu nó là câu trả lời sau đó, vì vậy nó sẽ giúp những người khác với cùng một câu hỏi. –