1

在我的主頁上,我想要一個簡單的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嗎?

在此先感謝您的幫助......我用這個簡單的例子,現在天掙扎......

+0

您需要從pageLoad的事件在你的頁面裏放置場漂亮 – devi 2016-10-19 11:17:23

回答

0

我認爲,自定義表單模板是自定義列表形式最簡單的方法。由於自定義表單模板是作爲用戶控件實現的,因此可以添加任何你想要的代碼 請參見下面的文章: http://www.codeproject.com/KB/sharepoint/SharePointListForms.aspx

+0

鏈接編程設置ListId PROPERT ......我一直在尋找這樣一個雖然說明。謝謝 ;) – 2011-07-27 07:33:24

相關問題