首页  ·  知识 ·  前端
结合MSAJAX将资源文件编译到动态链接库
佚名  chinahtml.com  综合  编辑:dezai  图片来源:网络
一、创建类库项目LocalizingScriptResources。 二、添加System.Web 和 System.Web.Extensions命名控件引用。 三、添加一个Jscript文件。

一、创建类库项目LocalizingScriptResources。

二、添加System.Web 和 System.Web.Extensions命名控件引用。

三、添加一个Jscript文件。

 

四、将如下代码加入到js文件中:

 

 

function CheckAnswer()


{

 


var firstInt = $get('firstNumber').innerText;


var secondInt = $get('secondNumber').innerText;


var userAnswer = $get('userAnswer');

 


if (parseInt(firstInt)+parseInt(secondInt) ==userAnswer.value)


{


alert(Answer.Correct);


return true;


}


else


{


alert(Answer.Incorrect);


return false;


}


}

 

五、右键js文件的属性,在高级里将“生成操作”设置成“嵌入的资源”。

 

六、添加类ClientVerification代码如下:

using System;

using System.Collections.Generic;

using System.Text;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Resources;

 

 

namespace LocalizingScriptResources

{

public class ClientVerification : Control

{

private Button _button;

private Label _firstLabel;

private Label _secondLabel;

private TextBox _answer;

private int _firstInt;

private int _secondInt;

 

protected override void CreateChildControls()

{

Random random = new Random();

_firstInt = random.Next(0, 20);

_secondInt = random.Next(0, 20);

 

ResourceManager rm = new ResourceManager("LocalizingScriptResources.VerificationResources", this.GetType().Assembly);

Controls.Clear();

 

_firstLabel = new Label();

_firstLabel.ID = "firstNumber";

_firstLabel.Text = _firstInt.ToString();

 

_secondLabel = new Label();

_secondLabel.ID = "secondNumber";

_secondLabel.Text = _secondInt.ToString();

 

_answer = new TextBox();

_answer.ID = "userAnswer";

 

_button = new Button();

_button.ID = "Button";

_button.Text = rm.GetString("Verify");

_button.OnClientClick = "return CheckAnswer();";

 

Controls.Add(_firstLabel);

Controls.Add(new LiteralControl(" + "));

Controls.Add(_secondLabel);

Controls.Add(new LiteralControl(" = "));

Controls.Add(_answer);

Controls.Add(_button);

}

}

}

 

上边的代码创建了一个ASP.NET控件。这个控件包含两个文本框、一个Label控件,和一个按钮。Label控件用来显示两个随机的数字,往文本框里输入这两个数字的和,点击按钮就会调用CheckAnswer函数。

 

七、向项目中添加一个资源文件VerificationResources.resx。

 

八、添加三个字符串资源,如下:

 

名称 值

Correct Yes, your answer is correct。

Incorrect No, your answer is incorrect。

Verify Verify Answer
九、重复七、八的步骤,添加两个资源文件VerificationResources.it.resx、VerificationResources.it.resx、VerificationResources.zh-cn.resx,给这几个键添加不同语言的值。

 

名称 值

Correct Si, la risposta e’ corretta.

Incorrect No, la risposta e’ sbagliata.

Verify Verificare la risposta

 

 

Correct 答案正确。

Incorrect 答案错误。

Verify 检查答案

 

十、向AssemblyInfo文件中添加如下行。

[assembly: System.Web.UI.WebResource("LocalizingScriptResources.CheckAnswer.js", "application/x-javascript")]

[assembly: System.Web.UI.ScriptResource("LocalizingScriptResources.CheckAnswer.js", "LocalizingScriptResources.VerificationResources", "Answer")]

由于在js函数中我们引用了Answer所以这里就只能是Answer,当然也可以叫做别的。

十一、编译程序。

 

 

测试程序:

一、在解决方案中添加一个AJAX-enabled WEB应用程序,添加项目引用。或新建一个AJAX-enabled WEB应用程序,将上一个项目生成的动态连接库复制到新项目的BIN下,然后添加引用。

二、将如下代码覆盖Default.aspx:

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>


<%@ Register TagPrefix="Samples" Namespace="LocalizingScriptResources" Assembly="LocalizingScriptResources" %>


http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">


http://www.w3.org/1999/xhtml">



Client Localization Example














 







 

 


后台代码如下:


using System;


using System.Data;


using System.Configuration;


using System.Web;


using System.Web.Security;


using System.Web.UI;


using System.Web.UI.WebControls;


using System.Web.UI.WebControls.WebParts;


using System.Web.UI.HtmlControls;

 


public partial class _Default : System.Web.UI.Page


{


protected void Page_Load(object sender, EventArgs e)


{


if (IsPostBack)


{


System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CreateSpecificCulture(selectLanguage.SelectedValue);


}


else


{


selectLanguage.Items.FindByValue(System.Threading.Thread.CurrentThread.CurrentUICulture.ToString()).Selected = true;


}


}

 


protected void selectLanguage_SelectedIndexChanged(object sender, EventArgs e)


{


System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CreateSpecificCulture(selectLanguage.SelectedValue);


}


}


 

本文作者:佚名 来源:chinahtml.com
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读