<a onclick='PayOpenItem(<%# Eval("OID") %>)' id="ToPay" href="#"
style='display: <%# Eval("OStatus").ToString().Equals("2") ? "block" : "none" %>'>
付款</a>
Eval("欄位") 回傳 object,需 .ToString() 後再比較。? : 直接輸出 CSS 值。<a ... style='display: <%# GetDisplayStyle(Eval("OStatus")) %>'>
protected string GetDisplayStyle(object status)
{
return status?.ToString() == "2" ? "block" : "none";
}
優點:邏輯集中、可複用、易單元測試、避免 .aspx 混雜大量 C# 代碼。
<div class='<%# GetCssClass(Eval("Type")) %>'>...</div>
<img src='<%# ResolveUrl("~/Images/" + Eval("ImgName")) %>' />
<input disabled='<%# (bool)Eval("IsDisabled") ? "disabled" : "" %>' />
Eval 為晚期繫結,效能略低於 Bind 或強型別 ItemDataBound,但對中小數據量影響可忽略。DBNull,建議用 Convert.ToString(Eval("Col")) 或 Eval("Col")?.ToString()(C# 6.0+)防呆。