3

codebehind に関数があり、aspx で使用したいと考えています。

コードビハインド:

    public string GetTranslate(string Text)
    {
       return Glob.GetTranslate(Text);
    }

aspx:

<asp:LinkButton Text='<%= GetTranslate("Admin_HeaderInfo")%>' id="blabla" runat="server" />

結果 :

LinkButton Text On Page => "<%= GetTranslate("Admin_HeaderInfo")%>"
4

4 に答える 4

3

<%を含むタグを%>サーバー内で使用することはできませんrunat="server"。そのプロパティはコードから設定できます。

于 2012-10-03T15:26:27.247 に答える
3

DataBinding、つまりを使用できますが、コードビハインドから<%#明示的に呼び出す必要があります。DataBind()

.aspx

<asp:LinkButton  Text='<%#GetTranslate("Admin_HeaderInfo")%>' id="blabla" runat="server" />

コードビハインド:

    protected void Page_Load(object sender, EventArgs e)
    {
        blabla.DataBind();
    }

Adriano が述べたように、他の方法はコード ビハインドから設定することです。

    protected void Page_Load(object sender, EventArgs e)
    {
        blabla.Text = GetTranslate("Admin_HeaderInfo");
    }

コード ビハインドを配置する場所を決定する際は、PostBack とページのライフサイクルの側面を考慮する必要があることに注意してください。

于 2012-10-03T15:44:40.893 に答える
2

過去にこのタイプのものを使用ExpressionBuildersしたことがありますが、それらは非常にうまく機能し、データバインディングを行っていなくても利用できます。

一部の古い WebForms プロジェクトではCode Expression Builderを使用しています。

式ビルダーのその他の詳細については、この記事を参照してください

これにより、次のような構文が可能になります

<asp:Label runat="server" Text='<%$ Lookup : SomeLookupValue %>'></asp:Label>

詳細については、この SO 投稿を参照してください。

于 2012-10-03T15:44:24.420 に答える
0

メソッドを静的にして、これを試す必要があります。

<%# GetTranslate("Admin_HeaderInfo")%>
于 2012-10-03T15:26:37.410 に答える