我可以在用户控件中创建内联函数/方法吗?

时间:2012-12-10 22:36:52

标签: c# asp.net

我想在我的用户控件中创建一个内联函数/方法,以便我可以这样做:

在我的test.ascx中:

<asp:Repeater ...>
  <itemTemplate>
     <p><%# MyInlineMethod(Eval("hello").ToString())%> </p>
  <itemTemplate>
</asp:Repeater>

这可能吗?

2 个答案:

答案 0 :(得分:2)

是的,但它必须是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);
         }
     }
}

答案 1 :(得分:0)

<!-- 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";
   }
}