0

ポストバックに XML ドキュメントを保存する方法は?

SaveViewState() メソッドで永続化するこの xmlDocument があります。

    Private _xmlSaveDispatch As XmlDocument = New XmlDocument

私のPage_Loadで...

If Not IsPostBack Then 
   Me._xmlSaveDispatch = New XmlDocument 

Private Property XMLSaveDispatch As XmlDocument 
  Get 
    Return _xmlSaveDispatch 
  End Get 

  Set(value As XmlDocument) 
      _xmlSaveDispatch = value 
  End Set 
End Property 

Button Click Event: 
Protected Sub dispatchButton_OnSave(sender As Object, e As EventArgs) _ 
     Handles dispatchButtons.SaveDispatch 
   XMLSaveDispatch = _objDispatchInfo.GetSaveXML() 
End Sub 
4

1 に答える 1

0

私は C# アプリケーションを作成していますが、同じ問題に遭遇しました (asp:Xml タグはポストバック間で保持されません)。C# で永続化するコードは次のとおりです。

//.aspx Presentation
<asp:Xml ID="xmlFormDisplay" runat="server"></asp:Xml>

//.aspx.cs Code Behind
private string formXSLT
{
    get { return ViewState["FormXSLT"].ToString(); }
    set { ViewState["FormXSLT"] = value; }
}
private string formXML
{
    get { return ViewState["FormXML"].ToString(); }
    set { ViewState["FormXML"] = value; }
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
         ...
    }

    xmlFormDisplay.TransformSource = formXSLT;
    xmlFormDisplay.DocumentContent = formXML;
}

私は VB 開発者ではありませんが、これはうまくいくはずです (またはかなり近いものになるはずです):

//.aspx Presentation
<asp:Xml ID="xmlFormDisplay" runat="server"></asp:Xml>

//.aspx.vb Code Behind
Private Property FormXSLT As String
    Get 
        Return ViewState["FormXSLT"].ToString() 
    End Get 
    Set(value As String) 
        ViewState["FormXSLT"] = value 
    End Set 
End Property

Private Property FormXML As String
    Get 
        Return ViewState["FormXML"].ToString() 
    End Get 
    Set(value As String) 
        ViewState["FormXML"] = value 
    End Set 
End Property

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack Then 
         ...
    End If

    xmlFormDisplay.TransformSource = formXSLT
    xmlFormDisplay.DocumentContent = formXML
End Sub
于 2013-11-25T23:41:21.753 に答える