2015-03-30 6 views
0

Я успешно создаю список Sharepoint (с именем «XMLToPDFTestList»), который я вижу через Действия сайта> Просмотреть весь контент сайта, но мои попытки добавить столбцы в список до сих пор оказались бесплодными.Почему содержимое моего списка Sharepoint не сохраняется в списке?

Вот как я пытаюсь сделать это:

private void ProvisionallyCreateList() 
{ 
    SPWeb mySite = SPContext.Current.Web; 
    // Check to see if list already exists; if so, exit 
    if (mySite.Lists.TryGetList(listTitle) != null) return; 

    SPListCollection lists = mySite.Lists; 
    SPListTemplateType listTemplateType = new SPListTemplateType(); 
    listTemplateType = SPListTemplateType.GenericList; 
    string listDescription = "This list is to hold inputted vals"; 
    lists.Add(listTitle, listDescription, listTemplateType); 

    // Now add a couple of columns 
    SPList list = lists["XMLToPDFTestList"]; 
    string faveNum = list.Fields.Add("favoriteNumber", SPFieldType.Text, false); 
    list.Fields[faveNum].Description = "favorite number"; 
    list.Fields[faveNum].Update(); 
    string faveCol = list.Fields.Add("favoriteColor", SPFieldType.Text, false); 
    list.Fields[faveCol].Description = "favorite color"; 
    list.Fields[faveCol].Update(); 
} 

Это все, что я вижу, когда я нажимаю "XMLToPDFTestList":

enter image description here

Мой "чутье" является то, что эта строка:

SPList list = lists["XMLToPDFTestList"]; 

... не является правильным/не достаточно конкретным. Вместо «XMLToPDFTestList» это должно быть что-то другое/что-то добавить или что-то еще. Но что именно?

ответ

0

Это было, как это часто бывает, «мое плохое» (YMMV?).

Проблема заключается в моем коде создания элемента списка, который, поскольку я не присваивал ничего по умолчанию/унаследованному полю «Название», заставлял его казаться мне (как в крике, снятом выше), что ни один элемент не добавлялся ,

После того, как я установил код, изменив это:

private void SaveInputToList() 
{ 
    using (SPSite site = new SPSite(siteUrl)) 
    { 
     using (SPWeb web = site.RootWeb) 
     { 
      SPList list = web.Lists[listTitle]; 
      SPListItem SPListItemFaveNum = list.Items.Add(); 
      SPListItemFaveNum["favoriteNumber"] = "7"; //inputtedNumber; TODO: Once 7 and teal are being saved and retrieved successfully, assign the var vals - will need to declare the controls created in CreateChildControls() globally 
      SPListItemFaveNum.Update(); 
      SPListItem SPListItemFaveHue = list.Items.Add(); 
      SPListItemFaveHue["favoriteColor"] = "teal"; 
      SPListItemFaveHue.Update(); 
     } 
    } 
} 

... к этому:

private void SaveInputToList() 
{ 
    using (SPSite site = new SPSite(siteUrl)) 
    { 
     using (SPWeb web = site.RootWeb) 
     { 
      SPList list = web.Lists[listTitle]; 
      SPListItem spli = list.Items.Add(); 
      spli["Title"] = "Write the Title"; 
      spli["favoriteNumber"] = "7"; 
      //SPListItemFaveNum.Update(); 
      //SPListItem SPListItemFaveHue = list.Items.Add(); 
      spli["favoriteColor"] = "teal"; 
      //SPListItemFaveHue.Update(); 
      spli.Update(); 
     } 
    } 
} 

... она отлично работает: элемент добавляется со всеми тремя значениями (Title, favoriteNumber и favoriteColor).

Я предполагал, что элемент не был создан, потому что «Заголовок» был пустым, и я вызывал обновление на каждом SPListItem, тогда как все, что мне действительно нужно сделать, это вызвать «Обновление» один раз и один SPListItem, а не несколько.