【问题标题】:Why aren't my Sharepoint List contents being saved to the list?为什么我的 Sharepoint 列表内容没有保存到列表中?
【发布时间】:2015-03-31 01:39:26
【问题描述】:

我成功地创建了一个 Sharepoint 列表(名为“XMLToPDFTestList”),我可以通过站点操作 > 查看所有站点内容查看该列表,但迄今为止,我向列表中添加列的尝试被证明是徒劳的。

这是我的尝试:

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”时看到的全部内容:

我的“直觉”是这句话:

SPList list = lists["XMLToPDFTestList"];

...不正确/不够具体。而不是“XMLToPDFTestList”,它应该是其他东西/预先添加一些东西,左右。但是,究竟是什么?

【问题讨论】:

    标签: sharepoint-2010 splistitem splist


    【解决方案1】:

    这是,通常情况下,“我的坏”(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 上调用,而不是多个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-22
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      相关资源
      最近更新 更多