zoukankan
html css js c++ java
实现 IStateManager 接口的服务器控件在设定属性时的注意点
设定属性后,要添加一句
ViewState.SetItemDirty() 的调用,这样在后续的阶段,StateBag.SaveViewState() 方法被调用时,才会保存该属性的值。
例子如下:
public
virtual
ImageAlign RightImageAlign
{
get
{
object
o
=
ViewState[
"
ItemRightImageAlign
"
];
if
(o
==
null
)
return
ImageAlign.NotSet;
else
return
(ImageAlign) o;
}
set
{
ViewState[
"
ItemRightImageAlign
"
]
=
value;
ViewState.SetItemDirty(
"
ItemRightImageAlign
"
,
true
);
}
}
通过 Reflector 看到 System.Web.UI.StateBag 类的
SaveViewState() 方法的代码如下,可以验证这一点:
internal
object
SaveViewState()
{
ArrayList list1
=
null
;
ArrayList list2
=
null
;
if
(
this
.bag.Count
!=
0
)
{
IDictionaryEnumerator enumerator1
=
this
.bag.GetEnumerator();
while
(enumerator1.MoveNext())
{
StateItem item1
=
(StateItem) enumerator1.Value;
if
(item1.IsDirty)
{
if
(list1
==
null
)
{
list1
=
new
ArrayList(
5
);
list2
=
new
ArrayList(
5
);
}
list1.Add(enumerator1.Key);
list2.Add(item1.Value);
}
}
if
(list1
!=
null
)
{
return
new
Pair(list1, list2);
}
}
return
null
;
}
查看全文
相关阅读:
elasticSearch数据库、skywalking集群部署
spring boot admin 源码包的编译
spring cloud config 配置文件更新
网关拦截:使用用户登录
Spring Boot Admin 2.1.4最新实战教程
Spring Boot 整合 Apollo
spring-boot admin的使用
第三模块 :微服务网关Zuul架构和实践
如何实现内核模块与内核版本的解耦
记录一次内核热补丁制作流程
原文地址:https://www.cnblogs.com/RChen/p/204525.html
最新文章
vue key的作用
javascript 链式调用+构造函数
20道JS原理题助你面试一臂之力!(转)
onload,domcontentload区别+onload详解
递归与循环优劣 + 递归算法详解
vue-router(转)——基本使用 + 路由守卫无限循环问题
Vuex入门(转)
websocket
TF的使用
shell技巧
热门文章
CNN-手写数字识别
排序算法
jupyter notebook的安装与使用
泰坦尼克号预测生还案例
图像转换矩阵
交叉验证来评价模型的性能
威斯康星乳腺癌良性预测
NLTK的安装
博客园 图灵学院spring boot学习2--集成swaagger
博客园 图灵学院spring boot学习1
Copyright © 2011-2022 走看看