1

タイプ 'User' の SharePoint リストのカスタム フィールドを評価しているときに、ユーザー名のみを取得することを期待していましたが、代わりに、削除する必要がある追加の文字が先頭に表示されています。

SPContext.Current.ListItem[NameOfUserField]の値を持っています

"14;#ディーマック"

補足として、このフィールドは文字列として扱われていますが、xml ファイルでは「ユーザー」フィールド タイプとして定義しています。この変換はどこで、なぜ行われたのでしょうか。私はもともと失敗したとしてそれをキャストしようとしましSPFieldUserた。

4

1 に答える 1

2

文字列の最初の部分は、問題のユーザーの IDSPWebです。つまり、DeeMac は、大まかに言えば、その Web を使用する 14 人目の人物です。

SPUserそのからオブジェクトを取得するには、ユーザーが属する を取得し、2 つのコンストラクターを呼び出すstring必要があります。SPWebSPFieldUserValue(SPWeb, string)

このSPFieldUserValueように構築されたUserには type のプロパティが含まれておりSPUser、文字列が null/空の場合は null になる可能性があります。

場合によっては、ユーザー列に s ではなく、実際にSPFieldUserValueオブジェクトが既に含まれている場合があることに注意してくださいstring

また、マルチユーザー列の場合は、そのクラスのコンストラクターに渡すSPFieldUserValueCollectionオブジェクトまたはが含まれる場合があります。string

問題が発生した場合は、実際に列に何が含まれているかをデバッグして確認してください。

于 2012-09-13T14:50:42.350 に答える