在我的主頁上,我想要一個簡單的webpart,允許用戶快速填寫列表中的條目。SharePoint:自定義Web部件中的FormField?
列表中有三個字段:標題(文本),正文(豐富文本),類別(查找)。
我不想使用標準的DataFormWebPart,因爲我有一些代碼隱藏,也填充了我的列表中的一些技術隱藏字段(實際上,我不排除DataFormWebPart,但我沒有找到如何在後面的代碼中使用它)。
所以我開始實現一個自定義的webpart。因爲我不希望有手動處理各領域的投入,我開始使用FormField
控制,它會自動選擇渲染控制,並提供Value
屬性與正確的格式:
<SharePoint:FormField runat="server" id="fldTitle" FieldName="Title" />
此代碼是沒有足夠的,我必須指定listid:
<SharePoint:FormField runat="server" id="fldTitle" FieldName="Title" ListId="{title list guid}" />
這是工作相當正確。我可以在代碼中訪問fldTitle.Value
以檢索用戶輸入。
但是我必須將webpart包含在正確打包和部署的功能中,才能激活。 Web部件將始終以同一列表爲目標,但由於列表也在特性(ListInstance元素)中實例化,因此我無法提前知道Guid。
我試過用幾種技術來設置列表ID,但沒有成功。
我也「反映」了SP dll,以通知FormComponent類正在使用由ListFormWebPart設置的「上下文」。
最後,我的問題是:
- 是正確的方式來創建主頁(不是列表自定義表單)上的自定義輸入web部件?
- 如何保持FormField的行爲(選擇正確的控件並處理輸入並將其轉換爲存儲格式)?
- 我需要創建一個自定義ListFormWebPart嗎?
- 我可以玩ControlTemplates嗎?
在此先感謝您的幫助......我用這個簡單的例子,現在天掙扎......
您需要從pageLoad的事件在你的頁面裏放置場漂亮 – devi 2016-10-19 11:17:23