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。
问题:
- 如何在listcontext之外正确使用listfield迭代器(在普通页面的web部分中)。我是不是遗漏了上下文
- 如何在listfield迭代器中的字段上设置默认值,而不是在列表的内容类型字段上指定
读取资源:
http://karinebosch.wordpress.com/sharepoint-controls/listfielditerator/
http://pholpar.wordpress.com/2009/12/
我想您不应该调用字段。UpdateFieldValueInItem();直接为OnInit中的fielf渲染控件设置值应该足够了。当按下SaveButton并创建项目时,将自动调用UpatedFieldValueInItem()。所以试试这个:
文本字段=(TextField)newFormIterator.Fields["Customer"].FieldRenderingControl;
字段。值=设置。客户名称