我在SharePoint中構建了一個自定義Web部件,它呈現一個表單以創建新的列表項。我有一個ListId set和ControlMode.New的listfielditerator和一個savebutton。這工作!SharePoint ListfieldIterator默認值
唯一的附加功能是在呈現的字段控件上放置動態默認值。我想我可以做到這一點,如下所示:
在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()時,field.Item爲null。
問題:
- 我怎樣才能正確地使用listfielditerator的listcontext外(在Web部件一個普通頁)。我缺少上下文嗎?
- 如何在listfielditerator中的字段上設置默認值,而不是在列表的內容類型字段中指定的值。
閱讀資源:
http://karinebosch.wordpress.com/sharepoint-controls/listfielditerator/
http://pholpar.wordpress.com/2009/12/
當我嘗試使用困難的方法,然後在OnPreRender中循環控制樹,搜索TextField時,我可以找到它並直接設置一個值。這工作:)但..我仍然好奇爲什麼上面的情況不起作用。 – Rene 2012-02-08 08:37:41