InfoPath 库为 XmlFormView.XmlForm.SaveAs 方法抛出 NotImplementExce
本文关键字:NotImplementExce 方法 SaveAs 库为 XmlFormView XmlForm InfoPath | 更新日期: 2023-09-27 17:56:40
我正在使用 SharePoint 页面中的 XmlFormView 来查看启用 InfoPath 浏览器的表单,并以编程方式添加一些打开和保存逻辑。
一切正常,没有 XmlForm.SaveAs 方法。如果我在实例化的 XmlForm 上调用此方法并使用有效位置调用它,则会引发 NotImplementException,请参阅代码:
.ASPX:
<InfoPath:XmlFormView ID="infoPathFormView" ShowHeader="false" Style="width: 100%;" runat="server" />
代码隐藏:
infoPathFormView.SaveLocation = "http://localhost/MyFormLibrary";
infoPathFormView.DataBind();
if(infoPathFormView.XmlForm.New)
{
string fileName = Page.User.Identity.Name;
infoPathFormView.XmlForm.SaveAs(fileName); // This line throws.
}
else
{
infoPathFormView.XmlForm.Save();
}
导致以下异常和堆栈跟踪:
方法或操作不是 实现。 在 Microsoft.Office.InfoPath.Server.DocumentLifetime.XmlFormHost.SaveAs(String 文件网址) 在 MyProject.ShowInfoPathForm.SaveButton_Click(对象 sender, EventArgs eventArguments)
在 System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e) 在 System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) at System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection 后数据)在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
为了清楚起见,我发现Microsoft.Office.InfoPath.Server.DocumentLifetime.XmlFormHost是一个继承自抽象XmlForm类的内部类。
- 有没有人知道为什么这段代码会抛出一个 NotImplementException?
- 是否有解决方法能够使用指定的文件名保存 XmlForm?
提前感谢!!
出于安全原因,控件的 XsnLocation、XmlLocation 和 SaveLocation 属性必须指定与自定义页位于同一网站集中的位置。
请注意,SaveAs 不适用于您从以下问题中链接的文章中指定的服务器表单:"只能从在 Office InfoPath 2007 中打开的表单中运行的代码Microsoft访问此类型或成员。
请考虑使用 SaveLocation (http://msdn.microsoft.com/en-us/library/microsoft.office.infopath.server.controls.xmlformview.savelocation.aspx) 在与模板相同的网站集中指定文件名。