2012-02-20 76 views
1

我使用SharePoint 2007的Sharepoint插入使用列表Web服務

一個新的項目我有一個名爲「用戶門票」與所謂的「內容」一分欄列表

我的問題是,我試圖插入以下文字:

<script type=\"text/javascript\"> </script> 

爲了避免例外,我使用「的HTMLEncode」

不過時,SharePoint忽略這一點,只需插入空值到「內容」一欄。

我的代碼:

ListsSoapClient _proxy = new ListsSoapClient(); 

string ContentValue = 
HttpContext.Current.Server.HtmlEncode("<script type=\"text/javascript\"> </script>"); 

XmlDocument doc = new XmlDocument(); 

XmlElement batchElement = doc.CreateElement("Batch"); 

batchElement.InnerXml = "<Method ID=\"1\" Cmd=\"New\"> <Field Name=\"Ticket_x0020_Details\">ContentValue </Field></Method>"; 

_proxy.UpdateListItems("User Tickets", UtilHelper.GetXElement(batchElement)); 

我怎樣才能獲得的SharePoint接受thisvalue:<script type=\"text/javascript\"> </script>

回答

1

SharePoint有某種用戶內容過濾。這取決於您要插入的列。它的類型是什麼?如果它是富文本,SharePoint將不允許插入腳本內容。

Upd:過濾腳本的想法很自然。想象一下,如果允許的話,當你打開「AllItems.aspx」視圖並執行所有腳本時會發生什麼。

你可以做什麼,你可以對內容進行雙重編碼,這樣在你的ContentValue字段中源代碼中的<script>就變成了&amp;lt;script&amp;gt;。這樣,您的腳本將以文本形式保存到列表項中。要將其作爲腳本執行,您將始終需要致電HtmlDecode

相關問題