0

我需要帮助使此代码更好地工作。目前,当它重新加载时,我会丢失第三个值,即计算值。我希望我的页面在不丢失页面上每个属性和每个用户控件实例的值的情况下重新加载。

提前致谢

  Private _Length As Double = 0.0
        Public Property Length() As Double
            Get
                If (Me.ViewState("calcLength") IsNot Nothing) Then
                    Return CType(ViewState("calcLength"), Double)
                End If
                Return _Length

            End Get
            Set(ByVal value As Double)
                ViewState("calcLength") = value
                txtLength.Text = value.ToString()
                _Length = value
            End Set
        End Property


     Private _Width As Double = 0.0
        Public Property Width() As Double
            Get
                If (Me.ViewState("calcwidth") IsNot Nothing) Then
                    Return CType(Me.ViewState("calcwidth"), Double)
                End If
                Return _Width
            End Get
            Set(ByVal value As Double)
                Me.ViewState("calcwidth") = value
                Me.txtwidth.Text = value.ToString()
                _Width = value
            End Set
        End Property


     Private _calculatedboardfeet As Double = 0.0
        Public Property CalculateBoardFeet() As Double
            Get
                If (Me.ViewState("calculateboardfeet") IsNot Nothing) Then
                    _calculatedboardfeet = CType(ViewState("calculateboardfeet"), Double)

                End If
                Return _calculatedboardfeet
            End Get
            Set(ByVal value As Double)
                Me.ViewState("calculateboardfeet") = value
                Me.lblCalculatedValue.Text = String.Format("{0:f2}", value)
                _calculatedboardfeet = value
            End Set
        End Property
4

3 回答 3

2

这部分我“认为”没有意义,尽管它可能不是问题的原因。我还没有详细研究其余的代码。

ElseIf (Me.ViewState("txtwidth") Is Nothing) Then
      Return CType(Me.ViewState("txtwidth"), Double)

如果ViewState找不到该项目(即Is Nothing),您如何返回转换后的值?这与 3 个属性相同。

于 2009-12-07T07:39:20.630 回答
0

“第三个值是计算值”是什么意思?第三个如CalculateBoardFeet()?

您在页面生命周期的哪个阶段调用这些属性?

为什么要将值同时存储在 ViewState 和控件的 .Text 属性中,然后又存储在类变量中?也。许多。副本。

如果您以编程方式设置控件的 .Text 属性,则应在回发时为您恢复该值,而无需您自己显式设置 ViewState。

于 2009-12-07T10:38:00.150 回答
0

原来我需要的是在用户控件的 pre_Render 事件中调用我的代码的分配部分。它晚于父页面的 PageLoad() 事件,此时所需的信息将在控件的视图状态中可用

于 2009-12-08T03:03:55.400 回答