// Spludlow Software // Copyright © Samuel P. Ludlow 2020 All Rights Reserved // Distributed under the terms of the GNU General Public License version 3 // Distributed WITHOUT ANY WARRANTY; without implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE // https://www.spludlow.co.uk/LICENCE.TXT // The Spludlow logo is a registered trademark of Samuel P. Ludlow and may not be used without permission // v1.14 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Text; public partial class Render_Report : System.Web.UI.Page { private object[] _DataItems = null; protected void Page_Load(object sender, EventArgs e) { Dictionary> arguments = Spludlow.Arguments.Decode(this.Request.ServerVariables["QUERY_STRING"]); string subject = Spludlow.Arguments.LastValue(arguments, "subject", false); if (subject == null) subject = "No Subject"; this.LiteralSubject.Text = subject; // Query Strings DataTable table = Spludlow.Data.TextTable.ReadText(new string[] { "KeyName Value", "String String", }); table.TableName = "Query Strings"; foreach (string key in arguments.Keys) { if (arguments[key].Count == 0) { table.Rows.Add(new object[] { key, "NO VALUES" }); continue; } for (int index = 0; index < arguments[key].Count; ++index) { string keyText = ""; if (index == 0) keyText = key; table.Rows.Add(new object[] { keyText, arguments[key][index] }); } } DataSet dataSet = new DataSet(); dataSet.Tables.Add(table); this.DataItemQueryStrings.Display(dataSet); // Post Data string data = Spludlow.Arguments.LastValue(arguments, "data", false); if (data != null) { string postedBody = Spludlow.Net.Http.PostedText(this.Request, Encoding.UTF8); // encoding !!!! this._DataItems = (object[])Spludlow.Parameters.DecodeParameter(new string[] { data, postedBody }); // Data Details table = Spludlow.Data.TextTable.ReadText(new string[] { "Index DataType", "Int32 String", }); table.TableName = "Posted Data"; for (int index = 0; index < this._DataItems.Length; ++index) { object dataItem = this._DataItems[index]; if (dataItem == null) table.Rows.Add(index, "NULL"); else table.Rows.Add(index, dataItem.GetType().AssemblyQualifiedName); } dataSet = new DataSet(); dataSet.Tables.Add(table); this.DataItemDataItems.Display(dataSet); // Data Items table = Spludlow.Data.TextTable.ReadText(new string[] { "DataIndex", "Int32*", }); for (int index = 0; index < this._DataItems.Length; ++index) table.Rows.Add(new object[] { index }); this.DataListItems.DataSource = table; this.DataListItems.DataBind(); } } protected void DataListItems_ItemDataBound(object sender, DataListItemEventArgs e) { Render_DataItem dataItem = (Render_DataItem)e.Item.FindControl("DataItem"); DataRow row = ((DataRowView)e.Item.DataItem).Row; dataItem.Display(this._DataItems[(int)row["DataIndex"]]); } }