2012-12-10 45 views
3

我要创建我的用户控件中的内联函数/方法,这样我可以做到这一点:我可以在用户控件内创建一个内联函数/方法吗?

里面我test.ascx:

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

这可能吗?

+0

在大多数情况下,最好将它绑定到数据源之前对数据执行这样的操作,虽然这可以工作,这是一般更容易出错和耗时。 – Servy

回答

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); 
     } 
    } 
} 
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"; 
    } 
} 
相关问题