Asp.net 如何修改自定义字段在sharepoint列表(allitems视图)上的外观?
我正在尝试编写一个自定义字段,它表示在任务上花费的时间。该字段源于NumberField(数字表示分钟),但我想在列表中显示为HH:MM。为此,我尝试覆盖fallowing函数:Asp.net 如何修改自定义字段在sharepoint列表(allitems视图)上的外观?,asp.net,sharepoint,custom-field-type,Asp.net,Sharepoint,Custom Field Type,我正在尝试编写一个自定义字段,它表示在任务上花费的时间。该字段源于NumberField(数字表示分钟),但我想在列表中显示为HH:MM。为此,我尝试覆盖fallowing函数: protected override void RenderFieldForDisplay(System.Web.UI.HtmlTextWriter output) { Label timeSpan = new Label(); timeSpan.Text = (
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 answer的帮助下解决。在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>
记住我以前尝试过的-此解决方案看起来非常简单:)在“所有项目”视图中呈现的值不基于模板或控件。它是从
<RenderPattern Name="DisplayPattern">
<Switch>
<Expr><Column /></Expr>
<Case Value="" />
<Default>
<Column SubColumnNumber="1" HTMLEncode="TRUE" />
<HTML><![CDATA[, ]]></HTML>
<Column SubColumnNumber="0" HTMLEncode="TRUE" />
</Default>
</Switch>
</RenderPattern>
已定义的字段架构的标记。显示模板定义其在显示表单中的显示方式。希望这有帮助
在CAML表示中获取格式将是一个小技巧。
您可以获得有关主题的一些信息。在“所有项目”视图中呈现的值不基于模板或控件。它是从
<RenderPattern Name="DisplayPattern">
<Switch>
<Expr><Column /></Expr>
<Case Value="" />
<Default>
<Column SubColumnNumber="1" HTMLEncode="TRUE" />
<HTML><![CDATA[, ]]></HTML>
<Column SubColumnNumber="0" HTMLEncode="TRUE" />
</Default>
</Switch>
</RenderPattern>
已定义的字段架构的标记。显示模板定义其在显示表单中的显示方式。希望这有帮助
在CAML表示中获取格式将是一个小技巧。
你可以得到一些关于这个主题的信息