Looping and TemplateRepeatIndex in Dreamweaver template

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-01 16:09:25

问题


I am having some trouble with accessing variables, here in this case Setvariable. When I go inside loop, variable doesn't exists. Anyone have any insight on this. Appreciate your help

Below is my code section in template. Would you please help when you get a chance? Thanks.

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

My dwt code

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

回答1:


Problems with variables in loops are well known and even documented.

Basically the first loop is already evaluated by the time you set your variable, so you will always be off by one.

  • Set variable i=0
  • Loop Iteration 1, i=null
  • Loop Iteration 2, i=0
  • Loop Iteration 3, i=1
  • etc



回答2:


This might help: http://www.tridiondeveloper.com/get-and-set-variables-in-dwts



来源:https://stackoverflow.com/questions/10208580/looping-and-templaterepeatindex-in-dreamweaver-template

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!