2012-12-10 78 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"; 
    } 
} 
相關問題