【问题标题】:ASP.net Vb.Net Label.Text not updatingASP.net Vb.Net Label.Text 未更新
【发布时间】:2013-01-15 19:19:29
【问题描述】:

在我的 VB.net ASP 应用程序中,我有一些 ASPTREEVIEW,在页面加载时有一个标签,我设置了一些值。单击任何行后,我会捕获该值并将其分配给标签。

但突然之间,该标签值没有按所选值更新。好像我通过调试值来检查它,值会发生变化,但是当我使用 Lable.text = selected_value... 它会设置值,但它实际上并没有在 html 页面上发生变化。 HTML 显示旧值。

会是什么问题,我不明白。

Imports DevExpress
Imports DevExpress.Xpo
Imports DevExpress.Data
Imports DevExpress.Data.Filtering
Imports System.Data

Partial Class _Default
    Inherits System.Web.UI.Page

    Public testvar As Integer = 35

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim xpcol As New XPCollection(Of WCSOEE.WcsGCObject)
        Dim GCObj1 As WCSOEE.WcsGCObject
        Dim Filter1 As New DevExpress.XtraCharts.DataFilter
        Dim SelectedGCObject As WCSOEE.WcsGCObject
        Filter1.ColumnName = "Oid"
        Filter1.Condition = XtraCharts.DataFilterCondition.Equal

        Filter1.Value = Label2.Text
        If Label2.Text = "" Then
            Label2.Text = 10
        End If
        For Each Siris As DevExpress.XtraCharts.Series In WebChartControl1.Series
            '  WebChartControl1.Series(Siris.Name).DataFilters.Item(0).Value = CInt(Label2.Text)
        Next


        Dim masterKeyvalue As DevExpress.Web.ASPxTreeList.TreeListNode = ASPxTreeList1.FocusedNode
        If masterKeyvalue IsNot Nothing Then
            SelectedGCObject = masterKeyvalue.DataItem
        Else
            SelectedGCObject = xpcol.Object(31)
        End If

        ' MsgBox(SelectedGCObject.GCName)
        MsgBox(Label2.Text)

        If IsPostBack = False Then
            Label2.Text = calculatehours(SelectedGCObject.Oid)
        End If

    End Sub

    Protected Function calculatehours(Oid As Integer)
        xpocolLogAvailability.Session = DevExpress.Xpo.XpoDefault.Session
        Dim logavail As New XPCollection(Of WCSOEE.LogAvailability)
        Dim gcobjlist As New XPCollection(Of WCSOEE.WcsGCObject)
        gcobjlist.Filter = CriteriaOperator.Parse("[Oid]=?", Oid)
        Dim filter As CriteriaOperator
        Dim ds As New DataTable
        Dim Series As New DevExpress.XtraCharts.Series
        Dim Filter1 As New DevExpress.XtraCharts.DataFilter
        ' Label2.Text = Oid


        logavail.Filter = CriteriaOperator.Parse("GCObject.Oid=?", Oid)
        Filter1.ColumnName = "Oid"
        Filter1.Condition = XtraCharts.DataFilterCondition.Equal
        Filter1.Value = Oid
        Dim arr1(32) As Long
        'For i As Int16 = 1 To 32
        '    arr1(i) = 0
        'Next
        'For Each gcobj As WCSOEE.LogAvailability In logavail
        '    arr1(gcobj.Status) = arr1(gcobj.Status) + gcobj.Duration
        'Next= ""
        'ds.Columns.Add(New DataColumn("Name", System.Type.GetType("System.Int32")))



        For Each Siris As DevExpress.XtraCharts.Series In WebChartControl1.Series

            WebChartControl1.Series(Siris.Name).DataFilters.Item(0).Value = Oid

        Next
        WebChartControl1.RefreshData()

        'For i As Int16 = 1 To 32
        '    ds.Rows.Add(i, arr1(i))
        'Next

        'ASPxListBox1.DataSource = ds
        'ASPxListBox1.DataBind()
        Return Oid
    End Function

    Protected Sub ASPxTreeList1_CustomCallback(sender As Object, e As DevExpress.Web.ASPxTreeList.TreeListCustomCallbackEventArgs) Handles ASPxTreeList1.CustomCallback

    End Sub

    Protected Sub ASPxTreeList1_FocusedNodeChanged(sender As Object, e As System.EventArgs) Handles ASPxTreeList1.FocusedNodeChanged
        Dim masterKeyvalue As DevExpress.Web.ASPxTreeList.TreeListNode = ASPxTreeList1.FocusedNode
        Dim SelectedGCObject As WCSOEE.WcsGCObject = masterKeyvalue.DataItem
        ' MsgBox(SelectedGCObject.GCName)

        If IsPostBack Then
            Label2.Text = calculatehours(SelectedGCObject.Oid)

        End If

        MsgBox(IsPostBack)
        MsgBox(Label2.Text)


    End Sub
End Class

【问题讨论】:

  • 贴一些代码,会更容易发现!
  • 代码是否包含了你引用Label2的所有地方?您的 Label2 标记或 javascript 有什么特别之处,或者您使用的是 AJAX UpdatePanel 吗?

标签: asp.net vb.net label


【解决方案1】:

发布一些代码,以便我们可以确切地看到您在做什么,到目前为止没有看到任何内容,请确保您在页面加载中有一个 If 语句,仅在当前请求不是回发时应用标签文本在每个请求上都设置为这个。

If Not IsPostBack() Then
   lblSomeLabel.Text = "Page load text"
End If

【讨论】:

  • 你能发布一下 Page_Load 事件里面的内容吗?
  • 所以,当我调试 Lable2.Text 行时,它给出了更改的值,但在 HTML 页面上它没有显示更新的值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-09
相关资源
最近更新 更多