public void Page_Load(object sender, EventArgs e) { if (IsForbidden) { return; } PageUtils.CheckRequestParameter("siteId"); _elementName = AuthRequest.GetQueryString("elementName"); if (IsPostBack) { return; } VerifySitePermissions(ConfigManager.WebSitePermissions.Template); var elements = StlAll.Elements; var allBuilder = new StringBuilder(); foreach (var elementName in elements.Keys) { allBuilder.Append($@"<li class=""nav-item {(elementName == _elementName ? "active" : string.Empty)}""> <a href=""{GetRedirectUrl(SiteId, elementName)}"" class=""nav-link""> {elementName} </a> </li>"); } LtlAll.Text = allBuilder.ToString(); if (!string.IsNullOrEmpty(_elementName)) { Type elementType; if (elements.TryGetValue(_elementName, out elementType)) { PhRefenreces.Visible = true; var attrBuilder = new StringBuilder(); var fields = elementType.GetFields(BindingFlags.Static | BindingFlags.NonPublic); foreach (var field in fields) { var attr = field.GetValue(null) as Attr; if (attr != null) { attrBuilder.Append($@"<tr> <td>{attr.Name}</td> <td>{AttrUtils.GetAttrTypeText(attr.Type, attr.GetEnums(elementType, SiteId))}</td> <td>{attr.Description}</td> </tr>"); } } var helpUrl = StringUtils.Constants.GetStlUrl(false, _elementName); var stlAttribute = (StlClassAttribute)Attribute.GetCustomAttribute(elementType, typeof(StlClassAttribute)); LtlReferences.Text = $@" <div class=""tab-pane"" style=""display: block;""> <h4 class=""m-t-0 header-title""> <{_elementName}> {stlAttribute.Usage} </h4> <p> {stlAttribute.Description} <a href=""{helpUrl}"" target=""_blank"">详细使用说明</a> </p> <div class=""panel panel-default m-t-10""> <div class=""panel-body p-0""> <div class=""table-responsive""> <table class=""table tablesaw table-striped m-0""> <thead> <tr> <th>属性</th> <th>类型</th> <th>说明</th> </tr> </thead> <tbody> {attrBuilder} </tbody> </table> </div> </div> </div> </div> "; } } }
public void Page_Load(object sender, EventArgs e) { if (IsForbidden) { return; } PageUtils.CheckRequestParameter("siteId"); if (IsPostBack) { return; } VerifySitePermissions(ConfigManager.WebSitePermissions.Template); // var elementsDictionary = StlAll.StlElements.GetElementsNameDictionary(); var elements = StlAll.Elements; var liBuilder = new StringBuilder(); var contentBuilder = new StringBuilder(); foreach (var elementName in elements.Keys) { var elementType = elements[elementName]; var htmlId = elementName.Replace(":", "-"); liBuilder.Append($@"<li class=""nav-item""> <a href=""#tab-content"" data-attr=""{htmlId}"" class=""nav-link""> {elementName} </a> </li>"); var attrBuilder = new StringBuilder(); var fields = elementType.GetFields(BindingFlags.Static | BindingFlags.NonPublic); foreach (var field in fields) { var attr = field.GetValue(null) as Attr; if (attr != null) { attrBuilder.Append($@"<tr> <td>{attr.Name}</td> <td>{AttrUtils.GetAttrTypeText(attr.Type, attr.GetEnums(elementType, SiteId))}</td> <td>{attr.Description}</td> </tr>"); } } var helpUrl = StringUtils.Constants.GetStlUrl(false, elementName); var stlAttribute = (StlClassAttribute)Attribute.GetCustomAttribute(elementType, typeof(StlClassAttribute)); contentBuilder.Append($@"<div class=""tab-pane show"" id=""{htmlId}""> <h4 class=""m-t-0 header-title""> <{elementName}> {stlAttribute.Usage} </h4> <p> {stlAttribute.Description} <a href=""{helpUrl}"" target=""_blank"">详细使用说明</a> </p> <div class=""panel panel-default m-t-10""> <div class=""panel-body p-0""> <div class=""table-responsive""> <table class=""table tablesaw table-striped m-0""> <thead> <tr> <th>属性</th> <th>取值</th> <th>简介</th> </tr> </thead> <tbody> {attrBuilder} </tbody> </table> </div> </div> </div> </div> "); } LtlElements.Text = liBuilder.ToString(); LtlAttributes.Text = contentBuilder.ToString(); }