代码之家  ›  专栏  ›  技术社区  ›  Dynde

以编程方式设置sharepoint列表项的字段值

  •  7
  • Dynde  · 技术社区  · 15 年前

    我只想向sharepoint 2007中的列表项添加一个简单的文本或超链接字段。

    我可以添加字段没问题:

    list.Fields.Add("MyField",SPFieldType.Text, false);
    

    但是,无论我尝试哪种方法,我都无法以编程方式设置字段的值。我试过:

    list.items[0]["MyField"] = "text";
    

    我试着把它装进一块地里:

    SPField field = list.items[0].Fields["MyField"];
    

    在那里设置它,设置默认值并进行更新,但什么都没有发生。

    谢谢

    4 回复  |  直到 15 年前
        1
  •  10
  •   Rich Bennema    15 年前

    尝试:

    SPListItem item = list.items[0];
    item["MyField"] = "text";
    item.Update();
    

    list.items[0]["MyField"] = "text";
    list.items[0].Update();
    

    here 和 here

        2
  •  3
  •   Shoban    15 年前

    您可以尝试添加新字段并设置默认值吗?未经测试的代码。告诉我进展如何。

    SPFieldText fldName = (SPFieldText)list.Fields.CreateNewField(SPFieldType.Text.ToString(), "mycolumn");
    fldName.DefaultValue = "default";
    list.Fields.Add(fldName);
    list.Update();
    
        3
  •  1
  •   brian brinley    15 年前

    我一直认为最好的方法是直接获取对列表项的引用并进行特定的更新,而不是使用索引器路由。就像rich的第一个例子提到的那样。

    http://www.sharepointdevwiki.com/display/public/Updating+a+List+Item+programmatically+using+the+object+model

        4
  •  0
  •   Azher Iqbal    15 年前

    从上面的所有讨论中可以看出,您试图在列表事件处理程序中设置字段值,而在添加项或更新项事件中设置值。如果是这种情况,则需要考虑后特性。记住我们有*ing和*ed事件,如果有*ing事件,我们需要使用BeforeProperties和AfterProperties。

    推荐文章