SharePoint ListfieldIterator default values

本文关键字:values default ListfieldIterator SharePoint | 更新日期: 2023-09-27 18:23:48

我正在SharePoint中构建一个自定义web部件,它呈现一个表单来创建新的列表项。我有一个listfield迭代器,它设置了ListId和ControlMode.New,还有一个保存按钮。这很管用!

唯一的附加功能是在渲染的字段控件上设置动态默认值。我想我可以做到这一点如下:

在OnInit中,要使迭代器工作:

SPContext.Current.FormContext.FormMode = SPControlMode.New;
newFormIterator.ListId = SPContext.Current.Web.Lists["MyList"].ID;
newFormIterator.ItemContext = SPContext.GetContext(HttpContext.Current,0, newFormIterator.ListId, SPContext.Current.Web);

在OnInit或OnLoad或OnPrerender中,要设置值:

TextField field = (TextField)newFormIterator.Fields["Customer"].FieldRenderingControl;
//field.ItemContext = newFormIterator.ItemContext;
//field.RenderContext = newFormIterator.ItemContext;
//field.ListItemFieldValue = settings.CustomerName;
field.Value = settings.CustomerName;
field.UpdateFieldValueInItem();

我也试过评论行,但没有结果。这是一个例外,因为字段。调用UpdateFieldValueInItem()时,项为null。

问题:

  1. 如何在listcontext之外正确使用listfield迭代器(在普通页面的web部分中)。我是不是遗漏了上下文
  2. 如何在listfield迭代器中的字段上设置默认值,而不是在列表的内容类型字段上指定

读取资源:

http://karinebosch.wordpress.com/sharepoint-controls/listfielditerator/

http://pholpar.wordpress.com/2009/12/

SharePoint ListfieldIterator default values

我想您不应该调用字段。UpdateFieldValueInItem();直接为OnInit中的fielf渲染控件设置值应该足够了。当按下SaveButton并创建项目时,将自动调用UpatedFieldValueInItem()。所以试试这个:

文本字段=(TextField)newFormIterator.Fields["Customer"].FieldRenderingControl;
字段。值=设置。客户名称