我開發了一個自定義sharepoint字段,用於上傳特定文檔庫中的文件,並將該文件的URL存儲爲該字段的值後存儲該文件的url。Sharepoint自定義上傳字段和附件?
問題是,上傳的文件在庫中存儲了兩次,因爲我想將另一個作爲附件與列表中具有此字段的項目相關聯。
我該如何避免savig文件作爲附件?
謝謝
編輯:下面的代碼:
public override void UpdateFieldValueInItem()
{
string name="";
if(fileUploader.PostedFile.FileName!="")
{
//method to store the posted file in a certain library
string x= UploadFile(this.Web, fileUploader.PostedFile.FileName,fileUploader.FileName,out name);
//Stores The URL and the name of the file
SPFieldUrlValue urlValue = new SPFieldUrlValue() {
Description=name,
Url=x
};
this.Value = urlValue;
this.ItemFieldValue = urlValue;
}
}
UploadFile方法
string UploadFile(SPWeb web,string path,string fileName,out string name)
{
UploadField uf = (UploadField)base.Field;
SPList docsList = web.Lists[uf.StoreList];
SPFolder folder = web.GetFolder(docsList.RootFolder.UniqueId);
byte[] contents = File.ReadAllBytes(path);
SPFile file= folder.Files.Add(folder.Url + "/" + fileName, contents);
//folder.Update();
SPListItem item = docsList.Items[file.UniqueId];
name = item["Name"].ToString();
return getItemURL(item);
}
它從SPFieldUrl – 2010-10-11 08:20:04
繼承中有BaseFieldControl類沒有this.update()方法方法 – 2010-10-11 09:07:23
確定該字段繼承自SPFieldUrl,但公用覆蓋無效UpdateFieldValueInItem()位於BaseFieldControl上下文中,並且這是該項目被更新的方法.SPFieldUrl的update()方法更新字段本身的屬性而非字段值的項目 – 2010-10-11 10:23:41