PDA

View Full Version : Exporting Grid Data for Excel, CSV, XML, HTML, PDF [EXAMPLE Codes]



fatihunal
Jan 17, 2012, 10:29 PM
I have referenced this page; http://examples1.ext.net/#/GridPanel/Miscellaneous/Export_Data_Ajax/

and iTextSharp; http://sourceforge.net/projects/itextsharp/

and this page; http://forums.ext.net/showthread.php?16925-How-can-i-do-Button-EventMask-Hide


<script type="text/javascript">
var ExportYap = function () {
Ext.net.Mask.show();
Ext.net.Mask.hide.defer(500);
};
</script>


<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:ToolbarFill ID="ToolbarFill1" runat="server" />
<ext:Button ID="ButtonXLS" runat="server" Text="XLS" Icon="PageWhiteExcel">
<DirectEvents>
<Click OnEvent="ExportEt" IsUpload="true" Before="ExportYap()">
<ExtraParams>
<ext:Parameter Name="data" Value="#{GridPanel1}.getRowsValues()" Mode="Raw" Encode="true" />
<ext:Parameter Name="format" Value="xls" Mode="Value" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
<ext:Button ID="ButtonDOC" runat="server" Text="DOC" Icon="PageWhiteWord">
<DirectEvents>
<Click OnEvent="ExportEt" IsUpload="true" Before="ExportYap()">
<ExtraParams>
<ext:Parameter Name="data" Value="#{GridPanel1}.getRowsValues()" Mode="Raw" Encode="true" />
<ext:Parameter Name="format" Value="doc" Mode="Value" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
<ext:Button ID="ButtonCSV" runat="server" Text="CSV" Icon="PageAttach">
<DirectEvents>
<Click OnEvent="ExportEt" IsUpload="true" Before="ExportYap()">
<ExtraParams>
<ext:Parameter Name="data" Value="#{GridPanel1}.getRowsValues()" Mode="Raw" Encode="true" />
<ext:Parameter Name="format" Value="csv" Mode="Value" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
<ext:Button ID="ButtonXML" runat="server" Text="XML" Icon="PageWhiteCode">
<DirectEvents>
<Click OnEvent="ExportEt" IsUpload="true" Before="ExportYap()">
<ExtraParams>
<ext:Parameter Name="data" Value="#{GridPanel1}.getRowsValues()" Mode="Raw" Encode="true" />
<ext:Parameter Name="format" Value="xml" Mode="Value" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
<ext:Button ID="ButtonHTML" runat="server" Text="HTML" Icon="PageWhiteH">
<DirectEvents>
<Click OnEvent="ExportEt" IsUpload="true" Before="ExportYap()">
<ExtraParams>
<ext:Parameter Name="data" Value="#{GridPanel1}.getRowsValues()" Mode="Raw" Encode="true" />
<ext:Parameter Name="format" Value="html" Mode="Value" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
<ext:Button ID="ButtonPDF" runat="server" Text="PDF" Icon="PageWhiteAcrobat">
<DirectEvents>
<Click OnEvent="ExportEt" IsUpload="true" Before="ExportYap()">
<ExtraParams>
<ext:Parameter Name="data" Value="#{GridPanel1}.getRowsValues()" Mode="Raw" Encode="true" />
<ext:Parameter Name="format" Value="pdf" Mode="Value" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>



protected void ExportEt(object sender, DirectEventArgs e)
{
try
{
#region Convert Data JSON
object o = JSON.Deserialize<object>(e.ExtraParams["data"]);
#endregion

#region JSON for use XML
StringBuilder SB = new StringBuilder();
SB.Append("{");
SB.Append("\"?xml\":");
SB.Append("{");
SB.Append("\"@version\": \"1.0\",");
SB.Append("\"@standalone\": \"no\"");
SB.Append("},");
SB.Append("\"records\":");
SB.Append("{");
SB.Append("\"record\":");
SB.Append(o.ToString());
SB.Append("}}");
#endregion

#region Convert JSON to XML
XmlDocument XD = (XmlDocument)JsonConvert.DeserializeXmlNode(@SB.To String());
XmlNode XN = XD as XmlNode;
#endregion

#region Clear Buffer
Response.Clear();
#endregion

switch (e.ExtraParams["format"].ToString())
{
#region Document Type XML
case "xml":
string strXml = XN.OuterXml;
Response.AddHeader("Content-Disposition", "attachment; filename=" + SayfaAdi + ".xml");
Response.Cache.SetCacheability(HttpCacheability.No Cache);
Response.AddHeader("Content-Length", strXml.Length.ToString());
Response.ContentType = "application/xml";
Response.Write(strXml);
break;
#endregion

#region Document Type XLS
case "xls":
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=" + SayfaAdi + ".xls");
Response.Cache.SetCacheability(HttpCacheability.No Cache);
XslCompiledTransform XCT1 = new XslCompiledTransform();
XCT1.Load(Server.MapPath("xsl/excel.xsl"));
XCT1.Transform(XN, null, Response.OutputStream);
break;
#endregion

#region Document Type CSV
case "csv":
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + SayfaAdi + ".csv");
Response.Cache.SetCacheability(HttpCacheability.No Cache);
XslCompiledTransform XCT2 = new XslCompiledTransform();
XCT2.Load(Server.MapPath("xsl/csv.xsl"));
XCT2.Transform(XN, null, Response.OutputStream);
break;
#endregion

#region Document Type PDF
case "pdf":
using (XmlNodeReader XNR = new XmlNodeReader(XN))
{
using (DataSet DS = new DataSet())
{
DS.ReadXml(XNR);

using (System.Web.UI.WebControls.GridView GridView1 = new System.Web.UI.WebControls.GridView())
{
GridView1.AllowPaging = false;
GridView1.DataSource = DS.Tables[0];
GridView1.DataBind();

Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=" + SayfaAdi + ".pdf");
Response.Cache.SetCacheability(HttpCacheability.No Cache);

using (StringWriter SW = new StringWriter())
{
using (HtmlTextWriter hw = new HtmlTextWriter(SW))
{
GridView1.RenderControl(hw);

using (StringReader sr = new StringReader(SW.ToString()))
{
using (Document D = new Document(PageSize.A4, 10f, 10f, 10f, 0f))
{
using (HTMLWorker HW = new HTMLWorker(D))
{
using (PdfWriter.GetInstance(D, Response.OutputStream))
{
D.Open();
HW.Parse(sr);
D.Close();
Response.Write(D);
}
};
}
}
}
}
}
}
}
break;
#endregion

#region Document Type DOC
case "doc":
using (XmlNodeReader XNR = new XmlNodeReader(XN))
{
using (DataSet DS = new DataSet())
{
DS.ReadXml(XNR);

using (System.Web.UI.WebControls.GridView GridView1 = new System.Web.UI.WebControls.GridView())
{
GridView1.AllowPaging = false;
GridView1.DataSource = DS.Tables[0];
GridView1.DataBind();

Response.ContentType = "application/vnd.ms-word";
Response.AddHeader("content-disposition", "attachment;filename=" + SayfaAdi + ".doc");
Response.Cache.SetCacheability(HttpCacheability.No Cache);

using (StringWriter SW = new StringWriter())
{
using (HtmlTextWriter HW = new HtmlTextWriter(SW))
{
GridView1.RenderControl(HW);
Response.Output.Write(SW.ToString());
}
}
}
}
}
break;
#endregion

#region Document Type HTML
case "html":
using (XmlNodeReader XNR = new XmlNodeReader(XN))
{
using (DataSet DS = new DataSet())
{
DS.ReadXml(XNR);

using (System.Web.UI.WebControls.GridView GridView1 = new System.Web.UI.WebControls.GridView())
{
GridView1.AllowPaging = false;
GridView1.DataSource = DS.Tables[0];
GridView1.DataBind();

Response.ContentType = "text/html";
Response.AddHeader("content-disposition", "attachment;filename=" + SayfaAdi + ".html");
Response.Cache.SetCacheability(HttpCacheability.No Cache);

using (StringWriter SW = new StringWriter())
{
using (HtmlTextWriter HW = new HtmlTextWriter(SW))
{
GridView1.RenderControl(HW);
Response.Output.Write(SW.ToString());
}
}
}
}
}
break;
#endregion
}

#region Close Buffer
Response.End();
#endregion
}
catch
{
}
}


I love EXT.Net! I love C#
Thanks EXT.Net

geoffrey.mcgill
Jan 17, 2012, 11:20 PM
Thanks for sharing!

Daniil
Jan 18, 2012, 5:40 AM
Thanks for sharing! Moving to the Examples and Extras forum.

equiman
May 22, 2012, 4:10 PM
Thanks for Sharing! Works perfect for me!

fatihunal
May 22, 2012, 8:35 PM
Thanks for Sharing! Works perfect for me!

Youre wellcome. Enjoy the EXT.Net

inaltec
Sep 04, 2012, 10:41 PM
Hellow!!! i'm trying to use this code... but generating buttons dinamically. Maybe can you help me with this:

http://forums.ext.net/showthread.php?20774-Create-a-Button-in-a-TopBar-with-Direct-Events-usin-ExtJS

My problem is that don't now how can I use the DirectEvent when I create the Button.

Thanks in advance!!

Gibson
Oct 07, 2016, 1:50 PM
With the code above i am able to export to Word, but neither EXCEL nor CSV

Excel document generated has has javascript and some binary characters



DefaultPage
</title><link id="ctl02" href="../Styles/main.css" rel="stylesheet" type="text/css" />
<script src="../Scripts/main.js" type="text/javascript"></script>
<script type="text/javascript">
var showResult = function (btn) {
Ext.Msg.notify("Button Click", "You clicked the " + btn + " button");
};

var showResultText = function (btn, text) {
Ext.Msg.notify("Button Click", "You clicked the " + btn + 'button and entered the text "' + text + '".');
};

var ExportYap = function () {
Ext.net.Mask.show();
Ext.net.Mask.hide.defer(500);
};

</script>

<style type="text/css">
.x-window-dlg .ext-mb-download {
background : transparent url(resources/images/download.gif) no-repeat top left;
height : 46px;
}
</style>
</head>
<body>
<form name="form1" method="post" action="DefaultPage.aspx?_dc=1475847609417" id="form1" enctype="multipart/form-data">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTM4MTAwMjM5NA9kFgICAw8WAh4HZW5jdHlwZQUTbXV sdGlwYXJ0L2Zvcm0tZGF0YRYEAgMPFCoSU3lzdGVtLldlYi5VS S5QYWlyAQ8FBGJhc2UPFgQeCFJhd1ZhbHVlZR4FVmFsdWVlZGQ CCQ9kFgJmDxQrBAEPBQRiYXNlDxYCHg5BY3RpdmVUYWJJbmRle AIEZBYKZg9kFgJmDxQrBAEPBQl2c01lbWJlcnMUKwADDwUFTm9 ydGgUKwQBDwUEYmFzZRYEHgtDb2xsYXBzaWJsZWceDk1hcmdpb nNTdW1tYXJ5BQc1IDUgNSA1DwUFU291dGgUKwQBDwUEYmFzZRY GHwRnHgVTcGxpdGcfBQUHMCA1IDUgNQ8FBkNlbnRlchQrBAEPB QRiYXNlFgQfBGcfBQUHMCA1IDAgNRYGZg9kFgJmD2QWBGYPFCs EAg8FBGJhc2UPFgQeDVNlbGVjdGVkSW5kZXhmHwEFBk1TSVNET mQPBQl2c01lbWJlcnMUKwACDwUMU2VsZWN0ZWRJdGVtFCsEAQ8 FBGJhc2UWBB4EVGV4dAUGTVNJU0ROHwIFBk1TSVNETg8FBUl0Z W1zDwIBFCsAARQrBAEPBQRiYXNlFgQfCAUGTVNJU0ROHwIFBk1 TSVNETmQCAg8UKwQBDwUEYmFzZQ8WAh8BZWRkAgEPZBYCZg8UK wQBDwUJdnNNZW1iZXJzFCsAAQ8FBUNlbGxzDwIBFCsAAWQWAmY PFCsEAQ8FBGJhc2UPFgIeBkxheW91dAUEYXV0b2QWAmYPZBYMZ g9kFgJmDxQrBAEPBQRiYXNlDxYCHwFkZGQCAQ9kFgJmDxQrBAE PBQRiYXNlDxYCHwFkZGQCAg9kFgJmDxQrBAEPBQRiYXNlDxYCH wFlZGQCAw9kFgJmDxQrBAEPBQRiYXNlDxYCHwFlZGQCBA9kFgJ mDxQrBAEPBQRiYXNlDxYCHwFlZGQCBQ9kFgICAQ8UKwQBDwUJd nNNZW1iZXJzFCsAAQ8FBlJlYWRlchQrBAEPBQRiYXNlFgIeCkl EUHJvcGVydHkFBEFwbjFkAgIPZBYCZg9kFgICAQ8UKwQBDwUJd nNNZW1iZXJzFCsAAQ8FBlJlYWRlchQrBAEPBQRiYXNlFgIfCgU JcXVvdGFOYW1lZAIBD2QWAmYPFCsEAQ8FCXZzTWVtYmVycxQrA AMPBQVOb3J0aBQrBAEPBQRiYXNlFgQfBGcfBQUHNSA1IDUgNQ8 FBVNvdXRoFCsEAQ8FBGJhc2UWBh8EZx8GZx8FBQcwIDUgNSA1D wUGQ2VudGVyFCsEAQ8FBGJhc2UWBB8EZx8FBQcwIDUgMCA1FgZ mD2QWAmYPZBYEZg8UKwQCDwUEYmFzZQ8WBB8HZh8BZGQPBQl2c 01lbWJlcnMUKwABDwUFSXRlbXMPAgIUKwACFCsEAQ8FBGJhc2U WBB8IBQZNU0lTRE4fAgUGTVNJU0ROFCsEAQ8FBGJhc2UWBB8IB QhQUk9EVUNUUx8CBQhQUk9EVUNUU2QCAg8UKwQBDwUEYmFzZQ8 WAh8BZGRkAgEPZBYCZg8UKwQBDwUJdnNNZW1iZXJzFCsAAQ8FB UNlbGxzDwIBFCsAAWQWAmYPFCsEAQ8FBGJhc2UPFgIfCQUEYXV 0b2QWAmYPZBYGZg9kFgRmDxQrBAEPBQRiYXNlDxYCHwFkZGQCA g8UKwQBDwUEYmFzZQ8WAh8BZGRkAgEPZBYEZg8UKwQBDwUEYmF zZQ8WAh8BZGRkAgIPFCsEAQ8FBGJhc2UPFgIfAWRkZAICD2QWB GYPFCsEAQ8FBGJhc2UPFgIfAWRkZAICDxQrBAEPBQRiYXNlDxY EHwJoHwFkZGQCAg9kFgJmD2QWAgIBDxQrBAEPBQl2c01lbWJlc nMUKwABDwUGUmVhZGVyFCsEAQ8FBGJhc2UWAh8KBQlxdW90YU5 hbWVkAgIPZBYCZg8UKwQBDwUJdnNNZW1iZXJzFCsAAw8FBU5vc nRoFCsEAQ8FBGJhc2UWBB8EZx8FBQc1IDUgNSA1DwUERWFzdBQ rBAEPBQRiYXNlFgQfBGcfBQUHNSA1IDUgNQ8FBkNlbnRlchQrB AEPBQRiYXNlFgYfBGcfBmcfBQUHNSA1IDUgNRYGZg9kFgJmD2Q WBGYPFCsEAg8FBGJhc2UPFgIfAWRkDwUJdnNNZW1iZXJzFCsAA Q8FBUl0ZW1zDwIBFCsAARQrBAEPBQRiYXNlFgQfCAUGTVNJU0R OHwIFBk1TSVNETmQCAg8UKwQBDwUEYmFzZQ8WAh8BZGRkAgEPF CsEAQ8FBGJhc2UPFgIfCQUEYXV0b2QWAmYPFCsEAQ8FBGJhc2U PFgIfCQUEYXV0b2QWAmYPZBYIZg9kFgJmDxQrBAEPBQRiYXNlD xYCHwFkZGQCAQ9kFgJmDxQrBAEPBQRiYXNlDxYCHwFkZGQCAg9 kFgJmDxQrBAEPBQRiYXNlDxYCHwFkZGQCAw9kFgJmDxQrBAEPB QRiYXNlDxYCHwFkZGQCAg9kFgJmD2QWAgIBDxQrBAEPBQl2c01 lbWJlcnMUKwABDwUGUmVhZGVyFCsEAQ8FBGJhc2UWAh8KBQJJR GQCAw9kFgJmDxQrBAEPBQl2c01lbWJlcnMUKwADDwUFTm9ydGg UKwQBDwUEYmFzZRYEHwRnHwUFBzUgNSA1IDUPBQVTb3V0aBQrB AEPBQRiYXNlFgYfBGcfBmcfBQUHMCA1IDUgNQ8FBkNlbnRlchQ rBAEPBQRiYXNlFgQfBGcfBQUHMCA1IDAgNRYGZg8UKwQBDwUEY mFzZQ8WAh8JBQRhdXRvZBYIZg9kFgRmDxQrBAIPBQRiYXNlDxY EHwdmHwEFA0FMTGQPBQl2c01lbWJlcnMUKwACDwUMU2VsZWN0Z WRJdGVtFCsEAQ8FBGJhc2UWBB8IBQNBTEwfAgUDQUxMDwUFSXR lbXMPAgIUKwACFCsEAQ8FBGJhc2UWBB8IBQNBTEwfAgUDQUxMF CsEAQ8FBGJhc2UWBB8IBQhGSUxFTkFNRR8CBQhGSUxFTkFNRWQ CAg8UKwQBDwUEYmFzZQ8WAh8BZWRkAgEPFCsEAQ8FBGJhc2UPF gIfAWRkZAICDxQrBAEPBQRiYXNlDxYEHwJoHwFkZGQCAw9kFgI CAQ8UKwQBDwUEYmFzZQ8WAh8BZGRkAgEPZBYCZg9kFgICAQ8UK wQBDwUJdnNNZW1iZXJzFCsAAQ8FBlJlYWRlchQrBAEPBQRiYXN lFgIfCgUCSURkAgIPZBYCZg9kFgICAQ8UKwQBDwUJdnNNZW1iZ XJzFCsAAg8FCkJhc2VQYXJhbXMPAgEUKwABFCsEAQ8FBGJhc2U WBh4ETmFtZQUCSUQfAgWIAUV4dC5nZXRDbXAoJyN7R3JpZFBhb mVsNH0nKSAmJiAje0dyaWRQYW5lbDR9LmdldFNlbGVjdGlvbk1 vZGVsKCkuaGFzU2VsZWN0aW9uKCkgPyAje0dyaWRQYW5lbDR9L mdldFNlbGVjdGlvbk1vZGVsKCkuZ2V0U2VsZWN0ZWQoKS5pZCA 6IDAeBE1vZGULKWVFeHQuTmV0LlBhcmFtZXRlck1vZGUsIEV4d C5OZXQsIFZlcnNpb249MS4yLjAuNDIwMzQsIEN1bHR1cmU9bmV 1dHJhbCwgUHVibGljS2V5VG9rZW49MmUxMmNlM2QwMTc2Y2Q4N wAPBQZSZWFkZXIUKwQBDwUEYmFzZRYCHwoFBk1TSVNETmQCBA9 kFgJmDxQrBAEPBQl2c01lbWJlcnMUKwACDwUFTm9ydGgUKwQBD wUEYmFzZRYEHwRnHwUFBzUgNSA1IDUPBQZDZW50ZXIUKwQBDwU EYmFzZRYGHwRnHwZnHwUFBzUgNSA1IDUWBGYPZBYCZg9kFgZmD xQrBAEPBQRiYXNlDxYEHwEFDDI1Njc1OTA3MTE0Mx8CBQwyNTY 3NTkwNzExNDNkZAIBDxQrBAEPBQRiYXNlDxYGHhBBbHRGb3JtY XRzU3RyaW5nBQpNTS9ERC95eXl5HwEFCTEwLzEvMjAxNh8CBgD AJuON6dMIZGQCAg8UKwQBDwUEYmFzZQ8WBh8NBQpNTS9ERC95e Xl5HwEFCTEwLzcvMjAxNh8CBgBAoeFE7tMIZGQCAQ9kFgJmD2Q WAmYPFCsEAQ8FCXZzTWVtYmVycxQrAAEPBQZSZWFkZXIUKwQBD wUEYmFzZRYCHwoFAklEZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVB vc3RCYWNrS2V5X18WZgUQUmVzb3VyY2VNYW5hZ2VyMQUKRm9yb WF0VHlwZQUJVGFiUGFuZWwxBQpwZE92ZXJWaWV3BQZQYW5lbDY FEWNib1NlYXJjaENyaXRlcmlhBQ1UeHRTZWFyY2hUZXh0BQpid HRuU2VhcmNoBQZQYW5lbDcFBlBhbmVsMQUJRmllbGRTZXQyBQ9 Db21wb3NpdGVGaWVsZDgFCXR4dG1zaXNkbgUPQ29tcG9zaXRlR mllbGQ0BQ90eHRzZXJ2aWNlY2xhc3MFD0NvbXBvc2l0ZUZpZWx kNQUPdHh0YWNjb3VudHN0YXRlBQ9Db21wb3NpdGVGaWVsZDYFD XR4dG9jc2JhbGFuY2UFEENvbXBvc2l0ZUZpZWxkMTkFCHR4dE9 JbXNpBQpHcmlkUGFuZWw2BQ5QYWdpbmdUb29sQmFyNgUIcG5sU 291dGgFCkdyaWRQYW5lbDEFDlBhZ2luZ1Rvb2xCYXIxBQtwZEJ 1bmRsZU1ncgUGUGFuZWwzBQhjYm9JdGVtcwUKdHh0TXNlYXJja AULQnR0bk1zZWFyY2gFBlBhbmVsNAUGUGFuZWw1BQlGaWVsZFN ldDMFEENvbXBvc2l0ZUZpZWxkMTIFC0Nib3Byb2R1Y3RzBQ1Ea XNwbGF5RmllbGQ2BQl0eHRkZXZpY2UFEENvbXBvc2l0ZUZpZWx kMTQFD3R4dEJ1bmRsZW1zaXNkbgUNRGlzcGxheUZpZWxkMQUHd Hh0aW1zaQUPQ29tcG9zaXRlRmllbGQ3BQ5UeHRzZXJ2aWNlbmF tZQUNRGlzcGxheUZpZWxkMgUPY2hrYm94U2luZ2xlU3ViBQdCd XR0b24xBRBCdHRuRGVsZXRlQnVuZGxlBQdCdXR0b24yBQ1EaXN wbGF5RmllbGQzBQdQYW5lbDEwBQpHcmlkUGFuZWwyBQ5QYWdpb mdUb29sQmFyMgUSbWFuYWdlQXV0b3JlbmV3YWwyBQdQYW5lbDY yBRJjYm9TZWFyY2hDcml0ZXJpYTIFDlR4dFNlYXJjaFRleHQyB QtidHRuU2VhcmNoMgUHUGFuZWw3MgUHUGFuZWw4MgUKRmllbGR TZXQxMgUPQ29tcG9zaXRlRmllbGQyBQV0eHRJRAUSQ29tcG9za XRlRmllbGQxNDUyBQ10eHRBdXRvTXNpc2RuBRJDb21wb3NpdGV GaWVsZDE0NDIFDXR4dEF1dG9idW5kbGUFD0NvbXBvc2l0ZUZpZ WxkMQURdHh0QXV0ZGF0ZWNyZWF0ZWQFGUJ0dG5EZWFjdGl2YXR lQXV0b3JlbmV3YWwFCXBubFNvdXRoMgULR3JpZFBhbmVsMTIFD 1BhZ2luZ1Rvb2xCYXIxMgUScGRCdWxrUHJvdmlzaW9uaW5nBQZ QYW5lbDkFE2Nib2J1bGtwcm92aXNpb25pbmcFClR4dEZTZWFyY 2gFC0J0dG5GU2VhcmNoBRBGaWxlVXBsb2FkRmllbGQxBQZjaGt ib3gFEENvbXBvc2l0ZUZpZWxkMTMFClNhdmVCdXR0b24FCVR4d EZpbGVJZAUHUGFuZWwxMQUKR3JpZFBhbmVsNAUOUGFnaW5nVG9 vbEJhcjQFCWJ1bGtTb3V0aAULR0RCdWxrU291dGgFDlBhZ2luZ 1Rvb2xCYXIzBRVkYXRhU3Vic2NyaXB0aW9uc0xpc3QFB1BhbmV sNjQFD3R4dHNlYXJjaG1zaXNkbgUMdHh0c3RhcnRkYXRlBQp0e HRlbmRkYXRlBRFidG5EYXRhTGlzdFNlYXJjaAUJcG5sU291dGg 0BRFHcmlkUGFuZWxEYXRhU3VicwUJQnV0dG9uWExTBQlCdXR0b 25ET0MFCUJ1dHRvbkNTVgUJQnV0dG9uUERGBQ9QYWdpbmdUb29 sQmFyMTTnaMaha4NyFltFqxgsI9iahwUszg==" />
</div>

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>


<div>

<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="EE0B99D0" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgKv+7ZvAuTVv5UCwA8qbOQke7z0aZPH+cAfq/i0HZ8=" />
</div>

<div id="FormatType_Container" style="display:inline;">

</div>