两件事情:
首先,确保您的 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();
第一行设置 的Query实例的属性,DefaultView而第二行调用Update的新实例DefaultView。