2011-10-03 6 views
5

Mam stronę aspx, która zawiera repeater. Mogę wyprowadzać dane za pomocą Eval(), ale chcę wiedzieć, czy można wywołać metodę należącą do innej klasy i przekazać jej wartość Eval()?ASP.NET Czy można wywoływać metody w znaczniku serwera przy użyciu metody Eval()?

Na przykład w sekcji <ItemTemplate> z repeatera:

<ItemTemplate> 
    <tr> 
     <td> 
      <%# ClassName.Method(Eval("value1")) %> 
     </td> 
     <td> 
      <%# Eval("value2") %> 
     </td> 
    </tr>     
</ItemTemplate> 

Jeśli jest to możliwe, aby to zrobić, co jest poprawny sposób to zrobić?

Odpowiedz

13

Tak, ale musisz podać pełną nazwę i rzucić wynik funkcji Eval, która zwraca instancje System.Object.

<%# Namespace.ClassName.Method((string)Eval("value1")) %> 

W tym przypadku metoda jest publiczną statyczną, ale można również użyć metod instancji.

<%# new Namespace.ClassName((string)Eval("value1")).Method2((int)Eval("value2")) %> 
Powiązane problemy