2018-07

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

アイテムの取得方法いろいろ

更新出来る時に更新っと…。

Read Moreで昨日の続き(かもしれない)のアイテムの取得方法いろいろ。

◆フォルダなしですべてのアイテムから取得◆

query.ViewAttributes = "Scope=\"Recursive\"";

Scopeを指定していない場合、リスト直下のフォルダとアイテムのみが取得されます。

他の値は以下

Default:リスト直下のフォルダとアイテム
FilesOnly:リスト直下のアイテムのみ
Recursive:フォルダなしでアイテムのみ
RecursiveAll:全フォルダとアイテム


◆フォルダを指定して取得◆

SPFolder MyFolder = MyList.GetItemById(1).Folder
query.Folder = MyFolder;


◆ビューから取得(ビューに設定してあるフィルタ条件で取得)◆

SPView View1 = MyList.Views["ビュー1"];
SPListItemCollection ItemC = MyList.GetItems(View1);


◆取得する列を指定◆

query.ViewFields = "<FieldRef Name='Title'/>" +
"<FieldRef Name='ID'/>" +
"<FieldRef Name='Modified'/>";

列の名前は内部列名で指定します。
ViewFieldsをセットしていない場合、全列が取得されます
アイテムの数が多いとかなり重いので使用する列のみ指定する事をお勧めします


◆クエリ文字列の例◆

ちょっとだけ例をw

//タイトルに「hoge」を含む
<Where>
<Contains>
<FieldRef Name='Title' />
<Value Type='Text'>hoge</Value>
</Contains>
</Where>


//タイトルに「hoge」を含む&更新日が2010/3/1 00:00より小さい
<Where>
<And>
<Contains>
<FieldRef Name='Title' />
<Value Type='Text'>hoge</Value>
</Contains>
<Lt>
<FieldRef Name='Modified'/>
<Value Type='DateTime'>2010-03-01THH:00:00Z</Value>
</Lt>
</And>
</Where>


//タイトルに「hoge」を含む&更新日が2010/3/1 00:00より小さい
//または タイトルが「sharepoint」に一致
<Where>
<Or>
<And>
<Contains>
<FieldRef Name='Title' />
<Value Type='Text'>hoge</Value>
</Contains>
<Lt>
<FieldRef Name='Modified'/>
<Value Type='DateTime'>2010-03-01THH:00:00Z</Value>
</Lt>
</And>
<Eq>
<FieldRef Name='Title' />
<Value Type='Text'>sharepoint</Value>
</Eq>
</Or>
</Where>


//タイトルが空白
<IsNull>
<FieldRef Name="Title"></FieldRef>
</IsNull>

参考
http://msdn.microsoft.com/ja-jp/library/ms467521.aspx



◆内部列名の確認方法◆

列の設定画面のURLで確認できます。
フィールドの内部列名1

URLが↓なら
http://sharepoint/_layouts/FldEdit.aspx?List=*****&Field=EventDate

内部列名=EventDate


日本語名で列を作成した場合、自動(?)で名前が付けられます。

URLが↓なら
http://sharepoint/_layouts/FldEdit.aspx?List=*****&Field=%5Fx4f5c%5F%5Fx6210%5F%5Fx3057%5F%5Fx305f%5F%5Fx52

%5Fx4f5c%5F%5Fx6210%5F%5Fx3057%5F%5Fx305f%5F%5Fx52

URLデコードして↓
内部列名=_x4f5c__x6210__x3057__x305f__x52


設定画面に出てこない列の場合はリストをテンプレート保存して構造を確認するか
VSでデバックしながら確認すると良いと思います。
もしくは列の表示名で取得してInternalNameプロパティを取得するとか。

SPField MyField = list.Fields["表示列名"]; //表示列名で取得
string FieldName = MyField.InternalName;

テンプレート保存してっての方法はまた機会があったら。。


何かおかしな所があったらつっこんでくださいorz


スポンサーサイト

● COMMENT FORM ●


管理者にだけ表示を許可する

トラックバック

http://sharepointyuzuki.blog54.fc2.com/tb.php/11-7705caf3
この記事にトラックバックする(FC2ブログユーザー)

アイテムの取得について注意とか «  | BLOG TOP |  » サイト、リスト、アイテムの取得方法

プロフィール

柚木

Author:柚木
コメント・トラックバックなどお気軽にどうぞ(^^)

連絡先:yuzuki-sharepoint★mail.goo.ne.jp(★を@に変換)

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

リスト・ライブラリ (9)
検索関連 (3)
管理設定 (0)
開発 (14)
その他 (1)
未分類 (0)

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。