これを行うことができるように、ユーザーコントロール内にインライン関数/メソッドを作成したい:
私のtest.ascx内:
<asp:Repeater ...>
<itemTemplate>
<p><%# MyInlineMethod(Eval("hello").ToString())%> </p>
<itemTemplate>
</asp:Repeater>
これは可能ですか?
はい、可能ですが、static
メソッドでなければなりません。そして、完全修飾名でアクセスするか、名前空間をインポートする必要があります。
<%@ Import Namespace="RootNamespace.SubNamespace1" %>
<asp:Repeater ...>
<itemTemplate>
<p><%# MyClass.MyInlineMethod(Eval("hello").ToString())%> </p>
<itemTemplate>
</asp:Repeater>
メソッド定義
namespace RootNamespace.SubNamespace1
{
public class MyClass
{
public static string MyInlineMethod(string input){
return string.Format("{0}!!!",input);
}
}
}
<!-- IsActive is a boolean property of a bound item -->
<div class="<%# WebUtils.GetStyleName((bool)Eval("IsActive")) %>" />
public class WebUtils
{
public static string GetStyleName(bool isActive)
{
return isActive ? "activeStyleName" : "notactiveStyleName";
}
}