2012-03-22 77 views
0

我有一個SharePoint 2010服務器場。我想用custom ContentType創建自定義DocumentLibrary。我在Visual Studio中創建了Listdefinitions在Sharepoint創建一次字段

但我想使用字段,只有在上傳或創建新文檔後才能填寫,然後在那之後不能編輯(但只讀)。

屬性ShowInNewForm和ShowInEditForm不適用於此,因爲上傳文檔將始終使用EditForm。

我該如何安排?

+1

您如何爲Field增值?你有使用事件接收器嗎? – 2012-03-22 13:51:35

+0

我想增加表格的價值。 – 2012-03-22 14:39:01

回答

0

您可以在doclib中註冊一個事件接收器和一個自定義的EditForm表單。事件接收器類的ItemUpdating方法將確保沒有人(工具或網頁)可以通過SP對象模型修改字段,他們的項目創建後:

public override void ItemUpdating(SPItemEventProperties properties) 
{ 
    // Cancel the update according to the content of AfterProperties. 
    properties.Cancel = true; 
    properties.ErrorMessage = "..."; 
} 

定製EditForm形式會如果表單是第一次打開,則在只讀HTML元素中呈現只讀屬性。那麼,您不一定需要這樣做,因爲表單中所做的任何更改都會被事件接收器拒絕,但用戶體驗對於表單來說不會更好。實際上,如果您不需要防止SP OOM變更的安全性,您可以只使用表單;用戶將無法通過SP用戶界面修改字段。

--- Ferda

相關問題