0

我正在尝试在 SharePoint 中创建自定义字段类型。

此控件的值基于同一列表中的另一个字段设置。由于此要求,此字段应仅在显示模式下显示,而不应在编辑或创建模式下显示。

我如何确保这一点?

如果我只是将 ASCX 控件编码为不呈现字段,则该字段将在“编辑和创建”模式下显示为这样。

替代文字 http://www.mannsoftware.com/blog/Lists/Photos/121308_0204_CrossSiteLo6.png

4

5 回答 5

1

通常,您将 SPField.ReadOnlyField 属性设置为 True 以实现任何字段的所需行为。(不要忘记相应地进行 SPField.Update!)我相信列表定义有一个等效的 CAML 属性。

也就是说,在派生自 BaseFieldControl 的控件类中,您可能只是重写 RenderFieldForInput() 方法而不调用基本实现以确保在创建或编辑期间不呈现任何内容。但是,这仍然会在表单中呈现字段的表格行,这可能不是您想要的。因此,要强制执行所需的行为,请在您的 SPField(不是字段控件)类中使用 ReadOnlyField 并覆盖 Update() 以始终将其设置为 True。

于 2009-05-19T11:30:31.087 回答
0

Advanced通过转到 的部分List Settings,设置Allow management of content types?Yes,然后编辑您的内容类型以将字段的值更改为“ ”,逐个列表地更改它可能会更容易hidden

于 2009-05-19T15:55:43.447 回答
0

看看这篇博文。我想它会给你一些想法。该概念根据模式使用不同的渲染模板。

http://sharepoint.nailhead.net/2008/04/creating-rendering-template-that.html

于 2009-05-19T17:45:08.363 回答
0

您是否尝试将字段设置为隐藏? http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfield.hidden.aspx

新项目和编辑项目(NewForm.aspx 和 EditForm.aspx)的自定义表单页面将是实现此目的的另一种方法。

于 2009-05-19T21:04:07.760 回答
0

设置 ShowInEditForm 和 ShowInNewForm 属性为我解决了这个问题。

于 2011-07-05T20:08:34.263 回答