少し背景
私は独自のローカリゼーションメカニズムを構築しました。基本的には次のようになります。
- 各言語のすべての文字列を格納する XML ファイルがあります。
Application
アプリケーションの起動時に、オブジェクト内の XML からの値を解析して保存しています
None asp コントロールを設定するには、次のコード行を使用しています。
<div><%= Application["New-Permission-Role"].ToString() %></div>
しかし、ASP.NET コントロールではこの構文を使用できません。
たとえば、のHeaderText
プロパティをローカライズしようとしていますGridView
<asp:TemplateField HeaderText='<%= Application["Actions"].ToString() %>'>
ASP.NETがレンダリングしないことに関連していることは知っています
注:ファイルでサーバー側の意味に入力できることは知っています.cs
が、aspxファイルでそれを達成する方法があるかどうか疑問に思っていますか?
私はすでに次のことを試しました:
を変更し<% = %>
て<%# %>
データバインディングを上げると、コンパイルエラーが発生します
Databinding expressions are only supported on objects that have a DataBinding event. System.Web.UI.WebControls.TemplateField does not have a DataBinding event
。
@roman_m のアドバイスに従い、ここで 述べたように、この投稿を使用してカスタム式を作成しました