报:已向服务器的 Windows 事件日志中添加了一个条目。
日志 ID:5337
提交事件处理程序返回了表示提交失败的值
报错原代码如下:
public void FormEvents_Submit(object sender, SubmitEventArgs e)
{
// 如果提交操作成功,则设置
e.CancelableArgs.Cancel = false;
// 在此处编写代码。
using (SPSite site = new SPSite("http://XXX"))// SPContext.Current.Site
{
using (SPWeb web = site.OpenWeb())//SPContext.Current.Web
{
XPathNavigator navigator = MainDataSource.CreateNavigator();
string d = navigator.SelectSingleNode("/my:BookStore/my:部门", this.NamespaceManager).Value;
string z = navigator.SelectSingleNode("/my:BookStore/my:职位", this.NamespaceManager).Value;
string n = navigator.SelectSingleNode("/my:BookStore/my:姓名", this.NamespaceManager).Value;
SPList list = web.Lists["自定义List"];
SPListItem listitem = list.Items.Add();
listitem["部门"] = d;
listitem["单位"] = z;
listitem["姓名"] = n;
listitem.SystemUpdate();
}
}
}
原因是发部到SharePoint网站,浏览器中,没有权限 修改代码为:
public void FormEvents_Submit(object sender, SubmitEventArgs e)
{
// 如果提交操作成功,则设置
e.CancelableArgs.Cancel = false;
// 在此处编写代码。
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite("http://XXX"))// SPContext.Current.Site
{
using (SPWeb web = site.OpenWeb())//SPContext.Current.Web
{
web.AllowUnsafeUpdates = true;
XPathNavigator navigator = MainDataSource.CreateNavigator();
string d = navigator.SelectSingleNode("/my:BookStore/my:部门", this.NamespaceManager).Value;
string z = navigator.SelectSingleNode("/my:BookStore/my:职位", this.NamespaceManager).Value;
string n = navigator.SelectSingleNode("/my:BookStore/my:姓名", this.NamespaceManager).Value;
SPList list = web.Lists["自定义List"];
SPListItem listitem = list.Items.Add();
listitem["部门"] = d;
listitem["单位"] = z;
listitem["姓名"] = n;
listitem.SystemUpdate();
}
}
});
}
问题解决,成功提交。