我在 SharePoint 页面中使用 XmlFormView 来查看启用 InfoPath 浏览器的表单并以编程方式添加一些打开和保存逻辑。
一切都很好,没有XmlForm.SaveAs方法。如果我在实例化的 XmlForm 上调用此方法并使用有效位置,此方法将引发 NotImplementedException,请参见代码:
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 fileUrl) 在 MyProject.ShowInfoPathForm.SaveButton_Click(Object sender, EventArgs eventArguments)
在 System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e) 在 System。 Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) 在 System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) 在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl , 字符串事件参数)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) 在 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)
为了清楚起见,我发现 Microsoft.Office.InfoPath.Server.DocumentLifetime.XmlFormHost 是一个继承自抽象XmlForm类的内部类。
- 有谁知道为什么这段代码会抛出 NotImplementedException?
- 是否有一种解决方法可以使用指定的文件名保存 XmlForm?
提前致谢!!