我需要帮助使这段代码更好用。目前,发生的事情是当它重新加载时,我松开了第三个值,即计算值。我想重新加载我的页面,而不会丢失页面上每个属性和每个用户控件实例的值。
提前致谢
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
答案 0 :(得分:2)
我认为这部分没有意义,尽管这可能不是问题的原因。我还没有详细研究其余的代码。
ElseIf (Me.ViewState("txtwidth") Is Nothing) Then
Return CType(Me.ViewState("txtwidth"), Double)
如果找不到ViewState
项(即Is Nothing
),您如何返回演员值? 3个属性的情况相同。
答案 1 :(得分:0)
“第三个值是计算值”是什么意思?第三,如CalculateBoardFeet()?
您在页面生命周期的哪个阶段调用这些属性?
为什么要将值存储在ViewState和控件的.Text属性中,然后再存储在类变量中?太。许多。副本。
如果以编程方式设置控件的.Text属性,则应该在回发时为您恢复该值,而无需您自己显式设置ViewState。
答案 2 :(得分:0)
原来我需要的是在Usercontrol的pre_Render事件中调用我的代码的赋值部分。它晚于Parent Page的PageLoad()事件,即所需的信息将在控件的viewstate中可用