| <%@ Page Language="C#" EnableViewState="False" %> |
| |
| <script runat="server"> |
| //=============================================================================================================== |
| // System : Sandcastle Help File Builder |
| // File : LoadIndexKeywords.aspx |
| // Author : Eric Woodruff (Eric@EWoodruff.us) from code by Ferdinand Prantl |
| // Updated : 04/09/2014 |
| // Note : Copyright 2008-2014, Eric Woodruff, All rights reserved |
| // Compiler: Microsoft C# |
| // |
| // This file contains the code used to search for keywords within the help topics using the full-text index |
| // files created by the help file builder. |
| // |
| // 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: https://GitHub.com/EWSoftware/SHFB. This |
| // notice, the author's name, and all copyright notices must remain intact in all applications, documentation, |
| // and source files. |
| // |
| // Date Who Comments |
| // ============================================================================================================== |
| // 04/01/2008 EFW Created the code |
| //=============================================================================================================== |
| |
| /// <summary> |
| /// Render the keyword index |
| /// </summary> |
| /// <param name="writer">The writer to which the results are written</param> |
| protected override void Render(HtmlTextWriter writer) |
| { |
| XmlDocument ki; |
| XmlNode root, node; |
| StringBuilder sb = new StringBuilder(10240); |
| int startIndex = 0, endIndex; |
| string url, target; |
| |
| ki = new XmlDocument(); |
| ki.Load(Server.MapPath("WebKI.xml")); |
| root = ki.SelectSingleNode("HelpKI"); |
| |
| if(Request.QueryString["StartIndex"] != null) |
| startIndex = Convert.ToInt32(Request.QueryString["StartIndex"]) * 128; |
| |
| endIndex = startIndex + 128; |
| |
| if(endIndex > root.ChildNodes.Count) |
| endIndex = root.ChildNodes.Count; |
| |
| if(startIndex > 0) |
| { |
| sb.Append("<div class=\"IndexItem\">\r\n" + |
| "<span> </span><a class=\"UnselectedNode\" " + |
| "onclick=\"javascript: return ChangeIndexPage(-1);\" " + |
| "href=\"#\"><b><< Previous page</b></a>\r\n</div>\r\n"); |
| } |
| |
| while(startIndex < endIndex) |
| { |
| node = root.ChildNodes[startIndex]; |
| |
| if(node.Attributes["Url"] == null) |
| { |
| url = "#"; |
| target = String.Empty; |
| } |
| else |
| { |
| url = node.Attributes["Url"].Value; |
| target = " target=\"TopicContent\""; |
| } |
| |
| sb.AppendFormat("<div class=\"IndexItem\">\r\n" + |
| "<span> </span><a class=\"UnselectedNode\" " + |
| "onclick=\"javascript: return SelectIndexNode(this);\" " + |
| "href=\"{0}\"{1}>{2}</a>\r\n", HttpUtility.HtmlEncode(url), target, |
| HttpUtility.HtmlEncode(node.Attributes["Title"].Value)); |
| |
| if(node.ChildNodes.Count != 0) |
| foreach(XmlNode subNode in node.ChildNodes) |
| sb.AppendFormat("<div class=\"IndexSubItem\">\r\n" + |
| "<img src=\"Item.gif\"/><a class=\"UnselectedNode\" " + |
| "onclick=\"javascript: return SelectIndexNode(this);\" " + |
| "href=\"{0}\" target=\"TopicContent\">{1}</a>\r\n</div>\r\n", |
| HttpUtility.HtmlEncode(subNode.Attributes["Url"].Value), |
| HttpUtility.HtmlEncode(subNode.Attributes["Title"].Value)); |
| |
| sb.Append("</div>\r\n"); |
| |
| startIndex++; |
| } |
| |
| if(startIndex < root.ChildNodes.Count) |
| sb.Append("<div class=\"IndexItem\">\r\n" + |
| "<span> </span><a class=\"UnselectedNode\" " + |
| "onclick=\"javascript: return ChangeIndexPage(1);\" " + |
| "href=\"#\"><b>Next page >></b></a>\r\n</div>\r\n"); |
| |
| writer.Write(sb.ToString()); |
| } |
| |
| </script> |