此示例项目显示了如何本地化HTML5查看器。选择本地化足以将本地化名称或本地化XML文件的路径设置为Localization属性的值。这可以在ASPX页面或Page_Load事件中完成。
<cc1:StiWebViewer ID="StiWebViewer1" runat="server" Localization="en" />
StiWebViewer1.Localization = "en"; ... StiWebViewer1.Localization = "Localization/en.xml";
在下面的示例中,我们添加了本地化列表。所有XML文件都位于Web项目的Localization文件夹中。选择后,您可以显示具有指定本地化的查看器。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Localizing_the_Viewer.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Localizing the Viewer</title> </head> <body> <form id="form1" runat="server"> <div> <h2><span style="color: #0066ff">Localizing Viewer Example</span></h2> <h3>This sample demonstrates how to localize the report viewer</h3> <asp:DropDownList ID="DropDownListLang" runat="server"> <asp:ListItem Value="ar">Arabic</asp:ListItem> <asp:ListItem Value="be">Belarusian</asp:ListItem> <asp:ListItem Value="bg">Bulgarian</asp:ListItem> <asp:ListItem Value="ca-ES">Catalan</asp:ListItem> <asp:ListItem Value="cs">Czech</asp:ListItem> <asp:ListItem Value="de">Deutsch</asp:ListItem> <asp:ListItem Value="el-GR">Greek</asp:ListItem> <asp:ListItem Value="en-GB">English (UK)</asp:ListItem> <asp:ListItem Value="en" Selected="True">English</asp:ListItem> <asp:ListItem Value="es">Spanish</asp:ListItem> <asp:ListItem Value="eu-ES">Basque</asp:ListItem> <asp:ListItem Value="fa">Farsi</asp:ListItem> <asp:ListItem Value="fr">French</asp:ListItem> <asp:ListItem Value="gl-ES">Galician</asp:ListItem> <asp:ListItem Value="hr">Croatian</asp:ListItem> <asp:ListItem Value="hu">Hungarian</asp:ListItem> <asp:ListItem Value="id">Indonesian</asp:ListItem> <asp:ListItem Value="it">Italian</asp:ListItem> <asp:ListItem Value="ka">Georgian</asp:ListItem> <asp:ListItem Value="Lt-sr-SP">Serbian (Latin)</asp:ListItem> <asp:ListItem Value="lt">Lithuanian</asp:ListItem> <asp:ListItem Value="nb-NO">Norwegian (Bokmål)</asp:ListItem> <asp:ListItem Value="nl">Dutch</asp:ListItem> <asp:ListItem Value="pl">Polish</asp:ListItem> <asp:ListItem Value="pt-BR">Portugese (Brazil)</asp:ListItem> <asp:ListItem Value="pt">Portuguese</asp:ListItem> <asp:ListItem Value="ro">Romanian</asp:ListItem> <asp:ListItem Value="ru">Russian</asp:ListItem> <asp:ListItem Value="sk">Slovak</asp:ListItem> <asp:ListItem Value="sv">Swedish</asp:ListItem> <asp:ListItem Value="tr">Turkish</asp:ListItem> <asp:ListItem Value="ua">Ukrainian</asp:ListItem> <asp:ListItem Value="zh-CHS">Chinese (Simplified)</asp:ListItem> <asp:ListItem Value="zh-CHT">Chinese (Traditional)</asp:ListItem> </asp:DropDownList> <asp:Button ID="ButtonShowReport" runat="server" Text="Show Report" οnclick="ButtonShowReport_Click" /> </div> </form> </body> </html>
该ButtonShowReport_Click事件重定向到Report.aspx页面。在此页面上,在Page_Load事件中为其加载报表和数据,然后将选定的本地化应用于查看器。
protected void Page_Load(object sender, EventArgs e) { StiReport report = new StiReport(); DataSet data = new DataSet(); report.Load(Server.MapPath(@"Reports\Invoice.mrt")); report.Compile(); data.ReadXml(Server.MapPath(@"Data\Demo.xml")); report.RegData(data); StiWebViewer1.Localization = String.Format("Localization/{0}.xml", (string)Session["lang"]); StiWebViewer1.Report = report; }
示例代码的结果如下图所示: