我们使用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()方法时,不会出现这样的错误,但同时我们的新列表项也不可见。在浏览器刷新时,一切都按预期正常工作。这是问题第一次出现。
可能的原因是什么?任何想法,建议都将受到高度赞赏。
最诚挚的问候,
Raghu
答案 0 :(得分:0)
我遇到了自定义EditForm.aspx的问题。我有两个链接在一起的列表,一个更改导致事件处理程序更新另一个。我在EditForm.aspx中有一个自定义控件来编辑链表。这导致事件处理程序更新EditForm.aspx显示的项目。当用户保存表单时,这反过来会导致冲突错误。
我终于发现我可以通过以下方式重置上下文:
SPContext.Current.ResetItem();
我不确定这对你的情况是否有帮助,但它解决了我的问题。