Beispiel #1
0
        public override string Render(int depthLimit, int currentDepth)
        {
            var rowDataSb = new StringBuilder();

            if (base.Metadata.IsEnumerable)
            {
                // check the collection to see if it's all strongly typed, or all primitives so the columns can be built.
                foreach (var item in (IEnumerable)this.Metadata.SourceObject)
                {
                    rowDataSb.Append("<tr>");

                    var renderedValue = ValueDisplay.DisplayValue(item, depthLimit, currentDepth);

                    var newTag = HtmlTag.WrapValue("td", renderedValue);

                    rowDataSb.Append(newTag);

                    rowDataSb.Append("</tr>");
                }
            }
            else
            {
                throw new InvalidOperationException(
                          "Cannot render rows for a type which does not implement IEnumerable.");
            }

            return(rowDataSb.ToString());
        }
        public override string Render(int depthLimit, int currentDepth)
        {
            var rowDataSb = new StringBuilder();

            foreach (var propertyInfo in this.Metadata.Properties)
            {
                rowDataSb.Append("<tr>");

                rowDataSb.AppendFormat(
                    "<th class='member' title='{0}'>{1}</th>",
                    propertyInfo.MemberType,
                    propertyInfo.Name);

                object value = propertyInfo.GetValue(this.Metadata.SourceObject);

                var displayValue = ValueDisplay.DisplayValue(value, depthLimit, currentDepth);

                rowDataSb.Append(HtmlTag.WrapValue("td", displayValue));

                rowDataSb.Append("</tr>");
            }

            return(rowDataSb.ToString());
        }