Две вещи:
Сначала убедитесь, что ваш 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
.