环境:Asp.net 4.5,Webforms
我正在创建一个复合控件。我已经公开了多个公共属性,但遇到了一个小问题。
假设我有两个属性:
Public Property Path() As String
Get
Return ViewState("Path")
End Get
Set(ByVal Value As String)
If UseAbsolute = True Then
' do something
Else
' it always lands heere...
End If
End If
ViewState("Path") = Value
End Set
End Property
Private _Path As String = String.Empty
Public Property UseAbsolute() As Boolean
....
End Property
Private _UseAbsolute As Boolean = False
我的控件在 PreRender 上被赋值。问题是,当我调用“路径”时,它会获取 UseAbsolute 的默认/私有值。因此,即使我在控件/html 中将属性设置为 True,它也会先获取 false。
我可以通过多种方式解决这个问题,但我觉得我缺少正确的方法或理解。
更新
我忘了提。我是:
EnsureChildControls()
在预渲染...
我还尝试将其添加到属性本身。