我有許多字段,如果數據過期,我想以紅色顯示數據。根據值更改顏色
<%= Html.Encode(String.Format("{0:d}", Model.Subcontract.insurance_GL))%>
如果日期小於今天的日期,那麼我希望它顯示爲紅色。做這個的最好方式是什麼?
編輯 這是我的詳細信息視圖。它不在網格中。這只是單個分包合同的字段清單。有,保險_GL,保險_AL,保險_WC等不同的領域,而不是一個網格重複的字段。
我有許多字段,如果數據過期,我想以紅色顯示數據。根據值更改顏色
<%= Html.Encode(String.Format("{0:d}", Model.Subcontract.insurance_GL))%>
如果日期小於今天的日期,那麼我希望它顯示爲紅色。做這個的最好方式是什麼?
編輯 這是我的詳細信息視圖。它不在網格中。這只是單個分包合同的字段清單。有,保險_GL,保險_AL,保險_WC等不同的領域,而不是一個網格重複的字段。
如果值小於零,我會向該字段添加一個類。
所以我不知道是什麼類型的HTML元素都包裹你的字段值,但使用的例子,我這樣做:
<span class="<%=(Model.Subcontract.insurance_GL < 0 ? "red" : "black")%>"
<%= Html.Encode(String.Format("{0:d}", Model.Subcontract.insurance_GL))%>
</span>
這實際上取決於您如何在客戶端頁面中呈現數據。你使用的是一個GridView的asp.net表單嗎?你自己爲你的數據生成html嗎?
我通常用css類去解決這個問題。我有標誌項一類,像這樣:
.late
{
color: #f00;
}
而且在後面的代碼,其中正在生成我的HTML,如果你自己創建的所有HTML:
foreach(Item item in items)
{
string cls = "";
if (item.IsLate)
cls = " class='late'";
html += "<div" + cls + ">" + item.Text + "</div>";
}
這將爲非延遲項目創建<div>Item1</div>
,爲後期項目創建<div class="late">Item2</div>
。如果您希望他們也以某種方式進行設計,您也可以爲非遲到的項目設置課程。很簡單。
如果您檢舉的項目是服務器控件,而你沒有自己創建HTML,你可以將類分配給他們:
if (item1.IsLate)
myTextBox.CssClass = "late";
如果您的數據綁定到一個GridView,你可以有一個事件處理程序RowDataBound
,做這樣的事情:
protected void gridview_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Item item = e.Row.DataItem as Item;
if (item.IsLate)
e.Row.CssClass = "late";
}
}
你也可以運用到造型的單個細胞在GridView:
// 3rd cell
e.Row.Cells[2].CssClass = "late";
希望這些適合您的情況。