我想为sharepoint开发一个自定义查找字段。
我创建了一个类,如下所示
public class CustomLookupControl:BaseFieldControl
并覆盖了这种方法
protected override string DefaultTemplateName
{
get
{
return base.DefaultTemplateName;
}
}
但是当我编辑一个项目时,我发现该字段的位置是空的。
我的问题是我不想为字段实现自定义渲染模板,我想使用查找字段的默认模板
如何实现这一目标。
答案 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的特定于查找的后代。