1

そのため、SharePoint リスト Web サービスの使用に関して問題があります。

新しいアイテムを挿入するために、Sharepoint バッチ スクリプトの正しい構文を取得する必要があります。マルチチョイスフィールドタイプを除いて、すべて正常に動作します。

データを挿入しましたが、どのようにしてもSPリストアイテムの詳細に表示されますが、SPでアイテムを編集しようとすると、SPがこのフィールドに送信した値をテキスト文字列として取得していることがわかります。選択済みとして保存したアイテムをチェックしません。

現時点でのスクリプトは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<Batch OnError="Return">
<Method ID='1' Cmd='New'>
<Field Name='SecurityCheckpoints'>1st checkpoint;2nd checkpoint</Field>
</Method>
</Batch>

そのフィールドの定義は次のようになります。

  <Field Type="MultiChoice" 
         DisplayName="Checkpoints allowed" 
         Required="TRUE" 
         FillInChoice="FALSE" 
         ID="{guid-guid-guid-guid-guid}" 
         SourceID="{guid-guid-guid-guid-guid}" 
         StaticName="SecurityCheckpoints" 
         Name="SecurityCheckpoints" 
         ColName="ntext2" 
         RowOrdinal="0" 
         Version="4">
          <CHOICES>
            <CHOICE>1st checkpoint</CHOICE>
            <CHOICE>2nd checkpoint</CHOICE>
            <CHOICE>3rd checkpoint</CHOICE>
          </CHOICES>
          <Default>1st checkpoint</Default>
        </Field>

別の目的の Silverlight アプリで sharepoint のカスタム UI のようなものを実装する必要があるため、独自の Web サービスを使用して SP と SL の間のプロキシとして使用しています。SP リスト定義を取得し、UI コントロールを動的に構築して、ユーザーが入力できるようにします。フォーム。

スクリプトを作成するにはどうすればよいですか?SPでアイテムを文字列値として保存するのではなく、SPでアイテムを選択(チェック)しますか?

1つの項目(「1st checkpoint」)のみでスクリプトを使用すると、SPは問題なく処理しますが、多くの場合、データはテキスト文字列として保存されますか?

私は何を間違っていますか?複数の値を正しく区切るにはどうすればよいですか?

高低を検索しましたが、マルチチョイスのサンプルが含まれている SP 更新スクリプトの例は見つかりませんでした。

前もって感謝します!

4

2 に答える 2

2

私は解決策を見つけました - それはあまりにも簡単でした:

セミコロン「;」を使用して選択肢の値を区切る代わりに、「;#」を使用して区切り、リスト全体の前後に配置する必要がありました。

したがって、これを使用するのではなく: 1 番目のチェックポイント;2 番目のチェックポイント

<?xml version="1.0" encoding="UTF-8"?>
<Batch OnError="Return">
<Method ID='1' Cmd='New'>
<Field Name='SecurityCheckpoints'>1st checkpoint;2nd checkpoint</Field>
</Method>
</Batch>

次のようにする必要がありました: ;#1 番目のチェックポイント;#2 番目のチェックポイント;#

<?xml version="1.0" encoding="UTF-8"?>
<Batch OnError="Return">
<Method ID='1' Cmd='New'>
<Field Name='SecurityCheckpoints'>;#1st checkpoint;#2nd checkpoint;#</Field>
</Method>
</Batch>

PS:これが正しい方法かどうかはわかりませんが、自分の質問に答えました。他の人が知っているだけです。

于 2012-12-05T06:54:04.277 に答える