The following example transforms the supplied xml string, using XSL/T and outputs to another string
using (StringReader rdr = new StringReader(selectedLine.AdditionalInformation))
{
XPathDocument doc = new XPathDocument(rdr);
using (StringWriter writer = new StringWriter())
{
transformer.Transform(doc, null, writer);
titleLabel.Attributes.Add("onmouseover", string.Format(@"showDiv(""{0}"")", writer.ToString()));
}
}
The XSL/T loaded into the transformer variable is as follows
<table class='panelTable'> </table>
<tr><td colspan='2' class='TitlePanelHeader'> </td></tr>
<tr><td> </td><td> </td></tr>
And a sample xml string is as follows:
The result from the transformation is as follows:
Additional answer code
Additional answer date
Answer code
TOS
Answer date
Author
Richard Laymon
Delivery to
Company Name, Address Line 1, AddressLine 2
Expected delivery
09/08/2009
Held orders
Ordered on
20/07/2009
Print runs
The code to build up the xml within the object is below, note that the values are HtmlEncoded to ensure that there are no problems in the web page.
public string AdditionalInformation
{
get
{
StringBuilder builder = new StringBuilder();
builder.Append(string.Format(CultureInfo.CurrentCulture,
@"",
HttpUtility.HtmlEncode(this.Title)));
AddLabelValue(builder, "Account number", ParentPurchaseOrder.AccountNumber);
AddLabelValue(builder, "Additional answer code", this.AdditionalAnswerCode);
AddLabelValue(builder, "Additional answer date",
this.AdditionalAnswerDate.Year != 1 ? this.AdditionalAnswerDate.ToShortDateString() : "" );
AddLabelValue(builder, "Answer code", this.AnswerCode);
AddLabelValue(builder, "Answer date",
this.AnswerDate.Year != 1 ? this.AnswerDate.ToShortDateString() : "");
AddLabelValue(builder,"Author", this.Author);
AddLabelValue(builder, "Delivery to",
ParentPurchaseOrder.DeliveryName + ", " + ParentPurchaseOrder.Address1 + ", " +
ParentPurchaseOrder.Address2 + ", " +
ParentPurchaseOrder.Address3 + ", " +
ParentPurchaseOrder.Address4 + ", " +
ParentPurchaseOrder.Address5 + ", " +
ParentPurchaseOrder.Postcode);
AddLabelValue(builder, "Expected delivery",
ParentPurchaseOrder.ExpectedDeliveryDate.ToShortDateString());
AddLabelValue(builder, "Held orders", this.HeldOrders);
AddLabelValue(builder, "Ordered on", ParentPurchaseOrder.OrderedOn.ToShortDateString());
AddLabelValue(builder, "Print runs", this.PrintRuns);
builder.Append(" ");
return builder.ToString();
}
}
private void AddLabelValue(StringBuilder builder, string label, string value)
{
builder.Append(string.Format(CultureInfo.CurrentCulture,
@" ",
label, HttpUtility.HtmlEncode(value)));
}
Social Bookmarking
If you’ve locked down access to your website but what your login page to pick up a stylesheet from a sub folder then you need to a add a location tag to your web.config to grant access
<location path="Styles">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Images">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
Social Bookmarking