【问题标题】:Save Conflict Error when trying to add new List Items at the time of list creation在创建列表时尝试添加新列表项时保存冲突错误
【发布时间】:2010-06-03 15:25:34
【问题描述】:

我们使用 Feature.xml、Element.xml、Schema.xml AllItems.aspx 和 3 个 aspx 表单以编程方式创建了自定义列表模板。我们为每个 aspx 文件都有一个代码隐藏文件。即对于 AllItems.aspx、DispForm.aspx、EditForm.aspx 和 NewForm.aspx。

有问题的文件是 AllItems.aspx。在 AllItems.aspx 文件后面的代码中,我们将删除以前的列表项并将新项添加到列表中,然后再将它们显示给用户。按照预期,AllItems.aspx 文件背后的代码是从 WebPartPage 类派生的,我们尝试重载了很多方法,但没有取得多大成功。

问题仅发生在第一次渲染时,即创建此列表的实例时。当重写 OnLoad() 时,我们会收到 Save 冲突错误,OnInit() 和 CreateChildControls() 方法也是如此。但是,当我们重写 Render() 或 RenderChildren() 方法时,不会出现此类错误,但同时我们的新列表项也不可见。在浏览器刷新时,一切都按预期开始正常工作。问题只是第一次出现。

这可能是什么原因?任何想法和建议都将受到高度赞赏。

最好的问候,

拉古

【问题讨论】:

  • 有人有什么建议吗?
  • 您是否将 EnsureChildControls 放入您的 CreatChildControls 代码中?
  • 没有。使用 CreateChildControls 方法时我没有设置 EnsureChildControls。

标签: save sharepoint-2010 conflict


【解决方案1】:

我在使用自定义 EditForm.aspx 时遇到了问题。我有两个链接在一起的列表,其中一个的更改会导致事件处理程序更新另一个。我在 EditForm.aspx 中有一个自定义控件,用于编辑链接列表。这导致事件处理程序更新 EditForm.aspx 显示的项目。这反过来又会在用户保存表单时导致冲突错误。

我终于发现我可以通过以下方式重置上下文:

SPContext.Current.ResetItem();

我不确定这对你的情况是否有帮助,但它解决了我的问题。

【讨论】:

  • 注意:这将导致无法检测到真正的冲突。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 2011-12-02
  • 1970-01-01
  • 2017-01-21
相关资源
最近更新 更多