Почему CAML не возвращает все поля / значения из списка sharepoint? - PullRequest
1 голос
/ 27 ноября 2011

У меня есть список Sharepoint, в котором есть такие столбцы, как: CopmanyName, Add1, Add2 Country, State / Province.У штата / провинции есть условие для ввода, только когда страна выбрана как Америка или Канада, поэтому в немногих записях в SharePoint это поле (ows_State) пустое.

Теперь я пытаюсь получить записи из SharePoint, используяwebservices, запрос CAML, проблема, с которой я сталкиваюсь, состоит в том, что если поле (State / Provice) пусто, то CAML не получает свою информацию, фактически само имя поля не добавляется в элемент z: rowXML.У меня есть это поле, связанное с gridView на внешнем интерфейсе (как Eval), и если элемент ows_State не найден в XML, то он выдает ошибку.

Любое предложение будет высоко ценится,

Еслитогда ничего не работает, вероятно, мне придется проверить и динамически добавить это поле.

var StateElement = doc.Element(rs + "data").Element(z + "row").Attribute("ows_State_x002f_Province");
                if (StateElement == null)
                {
                    doc.Element(rs + "data").Element(z + "row").Add(new XAttribute("ows_State_x002f_Province", " "));
                }

Ответы [ 2 ]

1 голос
/ 27 ноября 2011

У меня была похожая проблема.Дело в том, что если ваше поле пустое, CAML не вернет вам это поле в вашем XML.

Я принял решение проверить XML на наличие атрибута. Если его нет, добавьте его вручную.

Проверьте это:

http://naimishpandya.wordpress.com/2011/11/15/how-to-add-xml-attribute-to-an-existing-xml-node-in-c-c-sharp/

Этого также можно добиться с помощью LINQ To XML.

http://social.msdn.microsoft.com/Forums/en-US/xmlandnetfx/thread/be75108d-2265-41f0-8a22-f2ecc025cf53

0 голосов
/ 29 ноября 2011
foreach(XElement zrow in doc.Root.Elements(z + "row").Where(u => u.Attribute("ows_State_x002f_Province")==null).ToList()) 

{ 
     zrow.Add(new XAttribute("ows_State_x002f_Province", " ")); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...