mirror of
https://github.com/yasuhirokimura/db18
synced 2026-06-08 18:29:23 +00:00
91 lines
3.4 KiB
Plaintext
91 lines
3.4 KiB
Plaintext
<%@ Page Language="C#" EnableViewState="False" %>
|
|
|
|
<script runat="server">
|
|
//=============================================================================
|
|
// System : Sandcastle Help File Builder
|
|
// File : FillNode.aspx
|
|
// Author : Eric Woodruff (Eric@EWoodruff.us)
|
|
// Updated : 04/02/2008
|
|
// Note : Copyright 2007-2008, Eric Woodruff, All rights reserved
|
|
// Compiler: Microsoft C#
|
|
//
|
|
// This file contains the code used to dynamically load a parent node with its
|
|
// child table of content nodes when first expanded.
|
|
//
|
|
// This code is published under the Microsoft Public License (Ms-PL). A copy
|
|
// of the license should be distributed with the code. It can also be found
|
|
// at the project website: http://SHFB.CodePlex.com. This notice, the
|
|
// author's name, and all copyright notices must remain intact in all
|
|
// applications, documentation, and source files.
|
|
//
|
|
// Version Date Who Comments
|
|
// ============================================================================
|
|
// 1.5.0.0 06/21/2007 EFW Created the code
|
|
//=============================================================================
|
|
|
|
protected override void Render(HtmlTextWriter writer)
|
|
{
|
|
StringBuilder sb = new StringBuilder(10240);
|
|
string id, url, target, title;
|
|
|
|
XPathDocument toc = new XPathDocument(Server.MapPath("WebTOC.xml"));
|
|
XPathNavigator navToc = toc.CreateNavigator();
|
|
|
|
// The ID to use should be passed in the query string
|
|
XPathNodeIterator root = navToc.Select("//HelpTOCNode[@Id='" +
|
|
this.Request.QueryString["Id"] + "']/*");
|
|
|
|
if(root.Count == 0)
|
|
{
|
|
writer.Write("<b>TOC node not found!</b>");
|
|
return;
|
|
}
|
|
|
|
foreach(XPathNavigator node in root)
|
|
{
|
|
if(node.HasChildren)
|
|
{
|
|
// Write out a parent TOC entry
|
|
id = node.GetAttribute("Id", String.Empty);
|
|
title = node.GetAttribute("Title", String.Empty);
|
|
url = node.GetAttribute("Url", String.Empty);
|
|
|
|
if(!String.IsNullOrEmpty(url))
|
|
target = " target=\"TopicContent\"";
|
|
else
|
|
{
|
|
url = "#";
|
|
target = String.Empty;
|
|
}
|
|
|
|
sb.AppendFormat("<div class=\"TreeNode\">\r\n" +
|
|
"<img class=\"TreeNodeImg\" " +
|
|
"onclick=\"javascript: Toggle(this);\" " +
|
|
"src=\"Collapsed.gif\"/><a class=\"UnselectedNode\" " +
|
|
"onclick=\"javascript: return Expand(this);\" " +
|
|
"href=\"{0}\"{1}>{2}</a>\r\n" +
|
|
"<div id=\"{3}\" class=\"Hidden\"></div>\r\n</div>\r\n",
|
|
url, target, HttpUtility.HtmlEncode(title), id);
|
|
}
|
|
else
|
|
{
|
|
title = node.GetAttribute("Title", String.Empty);
|
|
url = node.GetAttribute("Url", String.Empty);
|
|
|
|
if(String.IsNullOrEmpty(url))
|
|
url = "about:blank";
|
|
|
|
// Write out a TOC entry that has no children
|
|
sb.AppendFormat("<div class=\"TreeItem\">\r\n" +
|
|
"<img src=\"Item.gif\"/>" +
|
|
"<a class=\"UnselectedNode\" " +
|
|
"onclick=\"javascript: return SelectNode(this);\" " +
|
|
"href=\"{0}\" target=\"TopicContent\">{1}</a>\r\n" +
|
|
"</div>\r\n", url, HttpUtility.HtmlEncode(title));
|
|
}
|
|
}
|
|
|
|
writer.Write(sb.ToString());
|
|
}
|
|
</script>
|