スポンサーサイト
上記の広告は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で確認できます。

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
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で確認できます。

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ブログユーザー)