3

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

在我的 test.ascx 里面:

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

这可能吗?

4

2 回答 2

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);
         }
     }
}
于 2012-12-10T22:39:33.330 回答
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";
   }
}
于 2012-12-10T22:43:52.773 回答