0

このコードの動作を改善するために助けが必要です。現在、リロードすると、計算された値である 3 番目の値が失われます。ページ上の各プロパティおよびユーザー コントロールの各インスタンスの値を失うことなく、ページをリロードしたいと考えています。

前もって感謝します

  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

「計算値である第3の値」とはどういう意味ですか? 3 つ目は CalculateBoardFeet()? のように?

ページ ライフ サイクルのどの段階でこれらのプロパティを呼び出しますか?

ViewState とコントロールの .Text プロパティの両方に値を格納し、さらにクラス変数に値を格納するのはなぜですか? それも。たくさんの。コピーします。

コントロールの .Text プロパティをプログラムで設定した場合、ViewState を自分で明示的に設定しなくても、ポストバック時にその値が復元されるはずです。

于 2009-12-07T10:38:00.150 に答える
0

私が必要としていたのは、Usercontrol の pre_Render イベントでコードの割り当て部分を呼び出すことでした。親ページの PageLoad() イベントよりも遅く発生します。これは、必要な情報がコントロールのビューステートで利用可能になるときです。

于 2009-12-08T03:03:55.400 に答える