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
;
}
查看全文
相关阅读:
[dj]Django外键(ForeignKey)操作以及related_name的作用
[java]快速创建servlet和springmvc测试项目
[sql]mybatis中动态sql
[sql]mysql中使用 where 1=1和 0=1 的作用及好处
[sql]sql中分组查询/union/join
JavaScripts学习日记——DOM SAX JAXP DEMO4J XPath
JavaScripts学习日记——XML DTD Schema
JavaScripts学习日记——DOM
JavaScripts学习日记——BOM
JavaScripts学习日记——ECMAscript
原文地址:https://www.cnblogs.com/RChen/p/204525.html
最新文章
jmeter安装使用教程
postman小结
接口测试-postman,JMeter与LoadRunner比较
常见的http错误提示
web测试需要注意几个非常重要的测试点
jQuery之ajax的跨域获取数据
PHP基于SOAP实现webservice
LApacheMP基础环境搭建
MySQL CMake参数说明手册
MySQL 5.5 主从复制
热门文章
MySQL的binlog日志
mysqldump备份恢复
MySQL用户授权
redis2.4.conf配置文件中文释意
Linux网络接口配置文件解析
[java]泛型的理解
[java]反射的一个例子🌰
[go](*User)(nil)与&User{}
[java]一分钟学会spring注解之@Import注解
[java]@PropertySource和@ConfigurationProperties区别
Copyright © 2011-2022 走看看