我有一个ASP.NET页面,它有一个代码隐藏方法,定义如下:
public string GetStatusColor(int statusID)
{
string color = "White";
if (statusID == 3)
color = "Red";
else if (statusID == 2)
color = "Blue";
return color;
}
在我的ASP.NET页面中,我有一个Repeater,其定义如下:
<asp:Repeater ID="ticketRepeater" runat="server" OnLoad="ticketRepeater_Load">
<HeaderTemplate>
<table id="resultTable" cellpadding="0" cellspacing="0">
<tr>
<th>Ticket #</th>
<th>Status</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# DataBinder.Eval(Container.DataItem, "TicketID") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "TicketStatusID") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
本质上,当绑定TicketStatusID时,我想回调GetStatusColor并显示方法的结果而不是实际的ID。我如何在中继器中执行此操作?谢谢!
答案 0 :(得分:2)
页:
<td><%# GetStatusColor(Container.DataItem)%></td>
代码隐藏:
public string GetStatusColor(object dataItem)
{
string color = "White";
var ticket = dataItem as YourTicketClass;
if(ticket != null)
{
if (ticket.TicketStatusID == 3)
color = "Red";
else if (ticket.TicketStatusID == 2)
color = "Blue";
}
return color;
}
答案 1 :(得分:1)
简单地
<td><%# GetStatusColor(DataBinder.Eval(Container.DataItem, "TicketStatusID")) %></td>
如果TicketStatusID已经不是int,则需要进行转换或解析