2つのこと:
まず、CAML が Where 要素でラップされていることを確認します。
<Where>
<Or>
<Eq><FieldRef Name='Title'/><Value Type='Text'>tileA</Value></Eq>
<Eq><FieldRef Name='Title'/><Value Type='Text'>titleB</Value></Eq>
</Or>
</Where>
次に、コードを次のように再配置します。
SPView view = SPContext.Current.List.DefaultView;
view.Query = myStringQuery;
view.Update();
コード ブロックが同じように見えることはわかっていますが、プライベート フィールドSPContextも使用していません。DefaultViewたとえば、次の実装がありDefaultViewます。
internal SPView DefaultView
{
get
{
if (this.m_iDefaultViewIndex == -1)
return (SPView) null;
else
return this[this.m_iDefaultViewIndex];
}
}
public SPView this[int iIndex]
{
get
{
if (iIndex < 0 || iIndex >= this.Count)
throw new ArgumentOutOfRangeException();
else
return new SPView(this, this.m_arrViewSchema, iIndex);
}
}
だから:
SPContext.Current.List.DefaultView.Query = myStringQuery;
SPContext.Current.List.DefaultView.Update();
1 行目Queryは のインスタンスのプロパティを設定DefaultViewし、2 行目はUpdateの新しいインスタンスを呼び出しますDefaultView。