【问题标题】:How to persist XMLDocument during post back?如何在回发期间保留 XMLDocument?
【发布时间】:2012-01-28 15:30:38
【问题描述】:

如何在 Post Back 上保存 XML 文档?

我有这个 xmlDocument 可以保存在 SaveViewState() 方法中:

    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 

【问题讨论】:

  • 这是VB.NET和ASP.NET吗?问题不清楚。您试图从浏览器发送什么以及希望您坚持什么?
  • 对不起,不清楚的问题:我有 XML 文档,在按钮单击时加载和 xml 字符串......但该按钮是服务器按钮,它确实回发并失去了价值。我要保留那个 XML 文档吗?
  • 您能否仅分享显示 Button_click 处理程序的代码并将其添加到您的问题中?
  • Private _xmlSaveDispatch As XmlDocument In my 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属性按钮单击事件:受保护的子 dispatchButton_OnSave(sender As Object, e As EventArgs) 处理 dispatchButtons.SaveDispatch XMLSaveDispatch = _objDispatchInfo.GetSaveXML() End Sub
  • 这无济于事。发回的是什么?领域?文件? GetSaveXml 在做什么?

标签: vb.net postback xmldocument persist


【解决方案1】:

我正在编写一个 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2011-09-30
    • 2011-06-07
    相关资源
    最近更新 更多