Sharepoint自定义字段默认模板

时间:2010-06-09 10:02:55

标签: sharepoint

我想为sharepoint开发一个自定义查找字段。

我创建了一个类,如下所示

public class CustomLookupControl:BaseFieldControl

并覆盖了这种方法

protected override string DefaultTemplateName
        {
            get
            {
                return base.DefaultTemplateName;                    
            }
        }

但是当我编辑一个项目时,我发现该字段的位置是空的。

我的问题是我不想为字段实现自定义渲染模板,我想使用查找字段的默认模板

如何实现这一目标。

2 个答案:

答案 0 :(得分:1)

由于您继承的是BaseFieldControl,而不是LookupField,因此base.DefaultTemplateName不会像您想要的那样呈现查找。你需要做的是定义你自己的模板:

protected override string DefaultTemplateName
{
  get
  {
    return "MyCustomTemplateName";                   
  }
}

您的呈现模板(部署到根_controltemplates文件夹的ascs文件)必须具有标识MyCustomTemplateName。在您的模板中添加控件,在本例中为LookupField,让它找出要渲染的内容。让它为你工作,它将获得自己的DefaultTemplateName。所以现在你的模板看起来像这样:

<SharePoint:RenderingTemplate ID="MyCustomTemplateName" runat="server">
  <Template>
    <SharePoint:LookupField runat="server" />
    // Other custom stuff you want to add
  </Template>
</SharePoint:RenderingTemplate>

答案 1 :(得分:0)

我相信你可能想继承Microsoft.SharePoint.WebControls.LookupField类,它是BaseFieldControl的特定于查找的后代。