1

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 (オブジェクトの送信者、EventArgs eventArguments)
で System.Web.UI.WebControls.LinkBut​​ton.OnClick (EventArgs e) で System. Web.UI.WebControls.LinkBut​​ton.RaisePostBackEvent(String eventArgument) System.Web.UI.WebControls.LinkBut​​ton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl) 、文字列 eventArgument)
System.Web.UI.Page.RaisePostBackEvent (NameValueCollection postData) で System.Web.UI.Page.ProcessRequestMain (ブール値 includeStagesBeforeAsyncPoint、ブール値 includeStagesAfterAsyncPoint) で

わかりやすくするために、Microsoft.Office.InfoPath.Server.DocumentLifetime.XmlFormHost は、抽象XmlFormクラスを継承する内部クラスであることがわかりました。

  • このコードが NotImplementedException をスローしている理由を知っている人はいますか?
  • 指定したファイル名で XmlForm を保存できるようにする回避策はありますか?

前もって感謝します!!

4

2 に答える 2

1

セキュリティ上の理由から、XmlFormView コントロールの XsnLocation、XmlLocation、およびSaveLocationプロパティは、カスタム ページと同じサイト コレクション内の場所を指定する必要があります。

于 2011-05-18T13:46:20.850 に答える
0

「このタイプまたはメンバーには、Microsoft Office InfoPath 2007で開いたフォームで実行されているコードからのみアクセスできます」という質問からリンクした記事で指定されているように、サーバーフォームでは[名前を付けて保存]を使用できないことに注意してください。

SaveLocation(http://msdn.microsoft.com/en-us/library/microsoft.office.infopath.server.controls.xmlformview.savelocation.aspx)を使用して、テンプレートと同じサイトコレクション内のファイル名を指定することを検討してください。

于 2011-05-18T21:56:37.370 に答える