迷失网络

如果你误读成“迷失公园”或“迷失侏罗纪”,那你可能真的迷失网络了。
随笔 - 88, 评论 - 1932, 引用 - 106

导航

关于

lostinet@lostinet.com这个油箱不能用了。因为空间没了,lostinet.com指向为127.0.0.1 。。。

标签

每月存档

最新留言

广告

 

上星期没有花时间学习。这个星期也只学了一天:

新的资源绑定语法

<asp:Button ID=Button1 Text='<%$ Resources:test1, Button1Text, "HelloWorld" %>' OnClick="Button1_Click" runat=server />
这是 Asp.Net 的多语言方案了。
<%$ Resources:test1, Button1Text, "HelloWorld" %> 的意思是
从 Resources 或 Code 中得到 test1 这个 resx 中的 Button1Text 的字符串, 而 "HelloWrod" 则作为设计时的资源。
我在 Resources/test1.resx 内添加了 Button1Text ,值是 "你好!" 然后就显示出来了:)


<%$ Code:"HelloWorld" %>
->
Parser Error Message: The expression prefix 'Code' was not recognized. Please correct the prefix or register the prefix in the <expressionBuilders> section of configuration.

<expressionBuilders> 在 <compilation> 下

<compilation debug="true">
 <expressionBuilders>
  <add expressionPrefix="MyExp" type="MyExpBuidler"/>
 </expressionBuilders>
</compilation>

<asp:Button ID=Button2 Text='<%$ MyExp : HelloWorld %>' OnClick="Button1_Click" runat=server />

using System;
using System.CodeDom;
using System.Collections;
using System.Web;
using System.Web.Compilation;

public class MyExpBuilder : System.Web.Compilation.ExpressionBuilder
{
    public override System.CodeDom.CodeExpression GetCodeExpression(System.Web.UI.BoundPropertyEntry entry, object parsedData, System.Web.Compilation.ExpressionBuilderContext context)
    {
        return new System.CodeDom.CodePrimitiveExpression("["+entry.Expression+"]");
    }
}
得到 <input type="submit" name="Button2" value="[HelloWorld]" id="Button2" />

使用上,至少要 <asp:Literal Runat=server Text='<%$ MyExp : HelloWorld %>' />


[ExpressionEditor(typeof(MyExpBuilderEditor))]
[ExpressionPrefix("MyExp")]
public class MyExpBuilder : System.Web.Compilation.ExpressionBuilder


public class MyExpBuilderEditor : System.Web.UI.Design.ExpressionEditor
{
    public override object EvaluateExpression(string expression, object parseTimeData, Type propertyType, IServiceProvider serviceProvider)
    {
        return expression + ":" + parseTimeData + ":" + propertyType + ":" + serviceProvider;
    }
}

ExpressionBuilder 应该在另外的Assembly里放。否则VWD不认它。

打印 | 张贴于 2004-07-16 16:03:00 | Tag:DotNet  AspNet  DotNet2学习

留言反馈

#re: DotNet2.0的确学习笔记 2 编辑
fghfggfdgddgdfgdgd

2005-12-26 03:32:00 | [匿名用户:vinagames11111@yahoo.com]
#re: DotNet2.0的确学习笔记 2 编辑
JSP里的多语言版本的开发该怎么实现呢?能给我意见吗?
2005-11-23 09:28:00 | [匿名用户:ava]
#re: DotNet2.0的确学习笔记 2 编辑
带参数变量等等的具体问题实际应用中会有很多。

我曾经负责一大型项目的多语言版本,用的就是自定义Resource文件,期间碰到相当多的问题,也总结了不少经验。只有在实践中解决问题的技术才是真正的技术。
2004-07-28 08:45:00 | [匿名用户:Unruled Boy(灵感之源)]
#回复: DotNet2.0的确学习笔记 2 编辑
Stupid M$ put overflow-y instead of overflow.

This blog entry is bad in Mozilla.
2004-07-19 19:00:00 | [匿名用户:Ginn]
#回复: DotNet2.0的确学习笔记 2 编辑
ok. go on.
在asp.net 中 <%#...%> 是什么意思?
2004-07-17 13:39:00 | [匿名用户:DingLi]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.1.8