|
发表于 2008-1-15 17:18:06
|
显示全部楼层
采集的结果如下: 非常干净 :-)
<P style="TEXT-INDENT: 2em">一、创建类库项目LocalizingScriptResources。</P>
<P style="TEXT-INDENT: 2em">二、添加System.Web 和 System.Web.Extensions命名控件引用。</P>
<P style="TEXT-INDENT: 2em">三、添加一个Jscript文件。</P>
<P style="TEXT-INDENT: 2em"><?xml:namespace prefix = o /><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">四、将如下代码加入到js文件中:</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">function CheckAnswer() <o:p></o:p></P>
<P style="TEXT-INDENT: 2em">{ <o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">var firstInt = $get('firstNumber').innerText;<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">var secondInt = $get('secondNumber').innerText; <o:p></o:p></P>
<P style="TEXT-INDENT: 2em">var userAnswer = $get('userAnswer'); <o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">if (parseInt(firstInt)+parseInt(secondInt) ==userAnswer.value) <o:p></o:p></P>
<P style="TEXT-INDENT: 2em">{ <o:p></o:p></P>
<P style="TEXT-INDENT: 2em">alert(Answer.Correct); <o:p></o:p></P>
<P style="TEXT-INDENT: 2em">return true; <o:p></o:p></P>
<P style="TEXT-INDENT: 2em">} <o:p></o:p></P>
<P style="TEXT-INDENT: 2em">else <o:p></o:p></P>
<P style="TEXT-INDENT: 2em">{<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">alert(Answer.Incorrect); <o:p></o:p></P>
<P style="TEXT-INDENT: 2em">return false; <o:p></o:p></P>
<P style="TEXT-INDENT: 2em">} <o:p></o:p></P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">五、右键js文件的属性,在高级里将“生成操作”设置成“嵌入的资源”。</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">六、添加类ClientVerification代码如下:</P>
<P style="TEXT-INDENT: 2em">using System;</P>
<P style="TEXT-INDENT: 2em">using System.Collections.Generic;</P>
<P style="TEXT-INDENT: 2em">using System.Text;</P>
<P style="TEXT-INDENT: 2em">using System.Web.UI;</P>
<P style="TEXT-INDENT: 2em">using System.Web.UI.HtmlControls;</P>
<P style="TEXT-INDENT: 2em">using System.Web.UI.WebControls;</P>
<P style="TEXT-INDENT: 2em">using System.Resources;</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">namespace LocalizingScriptResources</P>
<P style="TEXT-INDENT: 2em">{</P>
<P style="TEXT-INDENT: 2em">public class ClientVerification : Control</P>
<P style="TEXT-INDENT: 2em">{</P>
<P style="TEXT-INDENT: 2em">private Button _button;</P>
<P style="TEXT-INDENT: 2em">private Label _firstLabel;</P>
<P style="TEXT-INDENT: 2em">private Label _secondLabel;</P>
<P style="TEXT-INDENT: 2em">private TextBox _answer;</P>
<P style="TEXT-INDENT: 2em">private int _firstInt;</P>
<P style="TEXT-INDENT: 2em">private int _secondInt;</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">protected override void CreateChildControls()</P>
<P style="TEXT-INDENT: 2em">{</P>
<P style="TEXT-INDENT: 2em">Random random = new Random();</P>
<P style="TEXT-INDENT: 2em">_firstInt = random.Next(0, 20);</P>
<P style="TEXT-INDENT: 2em">_secondInt = random.Next(0, 20);</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">ResourceManager rm = new ResourceManager("LocalizingScriptResources.VerificationResources", this.GetType().Assembly);</P>
<P style="TEXT-INDENT: 2em">Controls.Clear();</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">_firstLabel = new Label();</P>
<P style="TEXT-INDENT: 2em">_firstLabel.ID = "firstNumber";</P>
<P style="TEXT-INDENT: 2em">_firstLabel.Text = _firstInt.ToString();</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">_secondLabel = new Label();</P>
<P style="TEXT-INDENT: 2em">_secondLabel.ID = "secondNumber";</P>
<P style="TEXT-INDENT: 2em">_secondLabel.Text = _secondInt.ToString();</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">_answer = new TextBox();</P>
<P style="TEXT-INDENT: 2em">_answer.ID = "userAnswer";</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">_button = new Button();</P>
<P style="TEXT-INDENT: 2em">_button.ID = "Button";</P>
<P style="TEXT-INDENT: 2em">_button.Text = rm.GetString("Verify");</P>
<P style="TEXT-INDENT: 2em">_button.OnClientClick = "return CheckAnswer();";</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">Controls.Add(_firstLabel);</P>
<P style="TEXT-INDENT: 2em">Controls.Add(new LiteralControl(" + "));</P>
<P style="TEXT-INDENT: 2em">Controls.Add(_secondLabel);</P>
<P style="TEXT-INDENT: 2em">Controls.Add(new LiteralControl(" = "));</P>
<P style="TEXT-INDENT: 2em">Controls.Add(_answer);</P>
<P style="TEXT-INDENT: 2em">Controls.Add(_button);</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">上边的代码创建了一个ASP.NET控件。这个控件包含两个文本框、一个Label控件,和一个按钮。Label控件用来显示两个随机的数字,往文本框里输入这两个数字的和,点击按钮就会调用CheckAnswer函数。</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">七、向项目中添加一个资源文件VerificationResources.resx。</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">八、添加三个字符串资源,如下:</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">名称 值</P>
<P style="TEXT-INDENT: 2em">Correct Yes, your answer is correct。</P>
<P style="TEXT-INDENT: 2em">Incorrect No, your answer is incorrect。</P>
<P style="TEXT-INDENT: 2em">Verify Verify Answer</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">九、重复七、八的步骤,添加两个资源文件VerificationResources.it.resx、VerificationResources.it.resx、VerificationResources.zh-cn.resx,给这几个键添加不同语言的值。</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">名称 值</P>
<P style="TEXT-INDENT: 2em">Correct Si, la risposta e’ corretta.</P>
<P style="TEXT-INDENT: 2em">Incorrect No, la risposta e’ sbagliata.</P>
<P style="TEXT-INDENT: 2em">Verify Verificare la risposta</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">Correct 答案正确。</P>
<P style="TEXT-INDENT: 2em">Incorrect 答案错误。</P>
<P style="TEXT-INDENT: 2em">Verify 检查答案</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">十、向AssemblyInfo文件中添加如下行。</P>
<P style="TEXT-INDENT: 2em">[assembly: System.Web.UI.WebResource("LocalizingScriptResources.CheckAnswer.js", "application/x-javascript")]</P>
<P style="TEXT-INDENT: 2em">[assembly: System.Web.UI.ScriptResource("LocalizingScriptResources.CheckAnswer.js", "LocalizingScriptResources.VerificationResources", "Answer")]</P>
<P style="TEXT-INDENT: 2em">由于在js函数中我们引用了Answer所以这里就只能是Answer,当然也可以叫做别的。</P>
<P style="TEXT-INDENT: 2em">十一、编译程序。</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">测试程序:</P>
<P style="TEXT-INDENT: 2em">一、在解决方案中添加一个AJAX-enabled WEB应用程序,添加项目引用。或新建一个AJAX-enabled WEB应用程序,将上一个项目生成的动态连接库复制到新项目的BIN下,然后添加引用。</P>
<P style="TEXT-INDENT: 2em">二、将如下代码覆盖Default.aspx:</P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><%@ Register TagPrefix="Samples" Namespace="LocalizingScriptResources" Assembly="LocalizingScriptResources" %><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><html xmlns="http://www.w3.org/1999/xhtml"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><head id="Head1" runat="server"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><title>Client Localization Example</title><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"></head><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><body><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><form id="form1" runat="server"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><asp:ScriptManager ID="ScriptManager1" EnableScriptLocalization="true" runat="server"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><Scripts><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><asp:ScriptReference Assembly="LocalizingScriptResources" Name="LocalizingScriptResources.CheckAnswer.js" /><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"></Scripts><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"></asp:ScriptManager><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><asp:DropDownList runat="server" AutoPostBack="true" ID="selectLanguage" OnSelectedIndexChanged="selectLanguage_SelectedIndexChanged"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><asp:ListItem Text="English" Value="en"></asp:ListItem><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><asp:ListItem Text="Italian" Value="it"></asp:ListItem><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><asp:ListItem Text="中文中国" Value="zh-CN"></asp:ListItem><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"></asp:DropDownList>&nbsp;<br /><br /><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><div><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><Samples:ClientVerification ID="xx" runat="server" ></Samples:ClientVerification><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"></div><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"></form><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"></body><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"></html><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">后台代码如下:<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">using System;<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">using System.Data;<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">using System.Configuration;<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">using System.Web;<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">using System.Web.Security;<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">using System.Web.UI;<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">using System.Web.UI.WebControls;<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">using System.Web.UI.WebControls.WebParts;<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">using System.Web.UI.HtmlControls;<o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">public partial class _Default : System.Web.UI.Page <o:p></o:p></P>
<P style="TEXT-INDENT: 2em">{<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">protected void Page_Load(object sender, EventArgs e)<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">{<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">if (IsPostBack)<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">{<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CreateSpecificCulture(selectLanguage.SelectedValue);<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">}<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">else<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">{<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">selectLanguage.Items.FindByValue(System.Threading.Thread.CurrentThread.CurrentUICulture.ToString()).Selected = true;<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">}<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">}<o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">protected void selectLanguage_SelectedIndexChanged(object sender, EventArgs e)<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">{<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CreateSpecificCulture(selectLanguage.SelectedValue);<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">}<o:p></o:p></P>
<P style="TEXT-INDENT: 2em">}<o:p></o:p></P>
<P style="TEXT-INDENT: 2em"><o:p></o:p></P>
<P style="TEXT-INDENT: 2em">编译项目,看下运行结果。 |
|