2

在我的 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
4

1 回答 1

1

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

If Not IsPostBack() Then
   lblSomeLabel.Text = "Page load text"
End If
于 2013-01-15T19:28:32.523 回答