private void RenderSubTree(List<TreeElement> items, StringBuilder sb, ref int iteration, string parentId)
{
// This method generates the client markup and JavaScript that contains a tree of images
// The sub-trees are NOT rendered as nested elements
StringBuilder temp = new StringBuilder();
string id = BuildSubTreeContainerID(iteration);
sb.AppendFormat(@"<div id=""{0}""{1}>", id, (iteration != 0 ? @" style=""display: none;""" : ""));
if(iteration != 0) {
sb.AppendFormat(@"<div class=""{0}""><a href=""#"" class=""{0}"" onclick=""javascript:return DisplayDiv('{1}');"" title=""{2}"">{3}</a></div>",
upCssClass, parentId, Properties.Messages.UpLevel, upLevelContent + Properties.Messages.UpLevel);
}
foreach(TreeElement item in items) {
iteration++; // Before invoking RenderSubTree recursively!
// Render item
RenderItem(item, sb, iteration);
if(item.SubItems.Count > 0) {
RenderSubTree(item.SubItems, temp, ref iteration, id);
}
}
sb.Append("</div>");
sb.Append(temp.ToString());
}