1
我試圖編寫一個自定義字段,表示在任務上花費的時間。本場從NumberField派生(數量佔分鍾),但我想將其顯示在列表上爲HH:MM爲此我試圖覆蓋休耕功能:如何修改自定義字段在共享點列表(allitems視圖)上的外觀?
protected override void RenderFieldForDisplay(System.Web.UI.HtmlTextWriter output)
{
Label timeSpan = new Label();
timeSpan.Text = ((int)this.Value/60).ToString() + ":" + ((int)this.Value % 60).ToString();
timeSpan.RenderControl(output);
//base.RenderFieldForDisplay(timeSpan.RenderControl());
}
我不是一個ASP .NET開發人員,所以我試圖避免定義DisplayTemplate。
你能告訴我如何以編程方式呈現它或只是把我推向正確的方向嗎?
解決方案
解決與Kusek答案的幫助。在fldtypes_HourField.xml:
<RenderPattern Name="DisplayPattern">
<HTML><![CDATA[<div align='right'>]]></HTML>
<Switch>
<Expr>
<Column />
</Expr>
<Case Value="" />
<Default>
<HTML><![CDATA[<script src="/_layouts/hourField.js"></script>]]></HTML>
<HTML><![CDATA[<div><SCRIPT>formatHourField("]]></HTML>
<Column />
<HTML><![CDATA[");</SCRIPT></div>]]></HTML>
</Default>
</Switch>
</RenderPattern>
而且hourField.js
function formatHourField(t) {
var m = t % 60;
var h = (t - m)/ 60;
document.write(h + ":" + m);
}
銘記什麼,我已經嘗試 - 這個解決方案看起來完美的簡單:)