我在Web表单项目中实现了颜色选择器控件,并希望确保CSS / JS最多加载一次。我尝试过以下方法:
Protected Shared _clientNeeded As Boolean = True
Public Sub NeedClient()
If (_clientNeeded) Then
_clientNeeded = False
Else
Return
End If
'Loading the client-side
End Sub
问题是,在构建之后,_clientNeeded
一开始就是真的,但后来变为假,永远是假的,所以共享,因为我的尝试没有实现我的目标。那么,如果有颜色选择器,但是不能超过一次,我怎么能确保加载客户端呢。
答案 0 :(得分:1)
您可以使用Context.Items和ViewState的组合来实现该属性。当页面加载多个控件时,ClientNeeded的值可以通过页面的Context.Items
在它们之间共享。设置属性后,每个控件都可以将其存储在自己的ViewState中,这样只要页面处于活动状态,它就会被维护:
protected bool ClientNeeded
{
get
{
object value = ViewState["ClientNeeded"];
if (value != null)
{
return (bool)value;
}
else
{
value = Context.Items["ClientNeeded"];
if (value != null)
{
ViewState["ClientNeeded"] = value;
return (bool)value;
}
else
{
return true;
}
}
}
set
{
Context.Items["ClientNeeded"] = value;
ViewState["ClientNeeded"] = value;
}
}