以编程方式将项目添加到列表时,您尝试更新的字段可能会出现只读错误
-
10-12-2019 - |
题
我正在从从 Web 部件页面重定向的应用程序页面添加一个列表项。
我的代码是:
protected void Page_Load(object sender, EventArgs e)
{
SPSite site = new SPSite("http://bipc11:1234/sites/webparts");
SPWeb web = site.RootWeb;
web.AllowUnsafeUpdates = true;
SPUser currentUser = web.CurrentUser;
SPList list = web.Lists["Cart"];
SPListItem item = list.AddItem();
item["Picture"] = Request.QueryString["title"];
Response.Write("<script> alert('Pictrue Updated')</script>");
item["User"] = currentUser;
Response.Write("<script> alert('User Updated')</script>");
item.Update();
Response.Write("<script> alert('Item Updated')</script>");
web.Update();
web.AllowUnsafeUpdates = false;
Response.Write("<script> alert('Value Added To Cart Successfully')</script>");
Response.Redirect(Microsoft.SharePoint.Utilities.SPUrlUtility.CombineUrl(web.Url, "/SiteAssets/WebPartPage.aspx"));
}
这里场 Picture
属于查找类型 Cart
列表。 User
是个人或团体的类型。重定向到应用程序页面的 Java 脚本是:
function myfunction(title)
{
window.location.assign("http://bipc11:1234/sites/webparts/_layouts/AddValueToCartList/AddValueToCartList.aspx?title="+title);
}
当页面重定向到应用程序页面时,我收到上述错误。
我缺少什么?请帮忙。
解决方案
我无法找到错误的确切原因:但请注意以下几点:
1) 如何更新只读字段。
首先将 Readonly 设置为 false 并更新该字段,然后将其恢复为:
Field.ReadOnlyField = false;
Field.Update();
2)更新Lookupfield:
new SPFieldLookupValue(1, "ASP.Net");