2011-02-08 8 views
0

誰かが私を助けてくれることを望んでいます。私はコンテンツエディタWebパーツにSilverlight 4 UIを埋め込んだカスタムSharePoint 2007リストを使用して作成したContact Managerに取り組んでいます。Silverlight 4 UIコントロールを使用して新しいアイテムをカスタムSharePoint 2007リストに保存する際の問題

現在、リストからデータを取得し、UIのデータグリッドに表示することができます。すべて正常に動作します。

今、次のコードを使用して新しいアイテムをリストに追加する機能を追加しようとしていますが、アイテムは保存されません。

デバッグ - >プロセスにアタッチオプションを使用して次のコードをリモートでデバッグしましたが、すべてエラーなしで正常に実行されたように見えますが、アイテムはSharePointに保存されません。

作業の簡単な挿入機能を得るために、すべてのSharePointファイルを1行のテキストに変更しましたが、メモ(複数行)は例外であり、いずれのフィールドも必要ありません。

SharepointサイトにはWindows認証が必要ですが、標準のSharePointフォームを使用して手動で新しいアイテムを追加するだけでなく、表示することができるので正しく動作しているようです。

最後に、デバッグ中に出力としてコピーした一番下のバッチ要素のxmlを追加しました。

追加情報がある場合はお知らせください。

ご協力いただきありがとうございます。

チャールズ

public string sharepoint_soap_namespace = "http://schemas.microsoft.com/sharepoint/soap/"; 
public string sharepoint_rowset_namespace = "#RowsetSchema"; 
public string service_lists_url = "http://myDomain/_vti_bin/lists.asmx"; 
public string listName = "MyContacts"; 

public void TestCreateContact() 
{ 
    Uri serviceUri = new Uri(service_lists_url); 
    BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None); 
    binding.MaxReceivedMessageSize = 2147483647; // This has to be the same as in the ServiceReferences.ClientConfig file. 
    EndpointAddress endpoint = new EndpointAddress(serviceUri); 
    ListsSoapClient testCreateClient = new ListsSoapClient(binding, endpoint); 

XElement batch = new XElement("batch", 
    new XElement("Method", 
    new XAttribute("ID", "1"), 
    new XAttribute("Cmd", "New"), 
    CreateFieldElement("ows_ID", "New"), 
    CreateFieldElement("ows_Title", "John"), 
    CreateFieldElement("ows_SupportFor","USA"), 
    CreateFieldElement("ows_LastName","Doe") 
)); 


testCreateClient.UpdateListItemsCompleted += 
     new EventHandler<UpdateListItemsCompletedEventArgs>(createSoapClient_UpdateListItemsCompletedEventArgs); 

testCreateClient.UpdateListItemsAsync(listName, batch); 
testCreateClient.CloseAsync(); 

} 


private XElement CreateFieldElement(string fieldName, string fieldValue) 
{ 
    XElement element = new XElement("Field", 
    new XAttribute("Name", fieldName), 
    fieldValue); 
    return element; 
} 

答えて

0

誰もが、私は自分の質問に答えることができました知っているようにするだけで簡単に更新。 バッチXElementでは間違ったフィールド名を使用していたようです。私が "ows_" 接頭辞なしで使用した "ows_SupportFor" ではなく "SupportFor" のた

CreateFieldElement( "ows_SupportFor"、 "USA")、

乾杯、 チャールズ

関連する問題