runxinzhi.com
首页
百度搜索
实现 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
;
}
相关阅读:
HDOJ 3547 DIY Cube 解题报告
一些经典的期望问题
我
人生
BZOJ 4341 [CF253 Printer] 解题报告
BZOJ 4302 Buildings 解题报告
OI 回忆录
PyQt实现测试工具
PyQt:eg4
pyQt: eg3
原文地址:https://www.cnblogs.com/RChen/p/204525.html
最新文章
织梦dede内容页做选项卡展示
PHP网站后台使用ukey登录
【解决办法】IIS环境中,打开网站后就直接列出了所有文件
PHP关于syntax error语法错误的问题(Parse error: syntax error, unexpected end of file in xxxxxxxx)
php获取url?后面的拼接参数
织梦系统dedecms实现列表页双样式,列表样式循环交替变化
{dede:channelartlist} 改变偶数的class
App的开发过程
微信主要版本的功能说明
[Redis]处理定时任务的2种思路
热门文章
产品新人有效的进行项目管理
Percona备份mysql全库及指定数据库(完整备份与增量备份)
在线教育分析
MySQL索引背后的数据结构及算法原理
解读mysql主从配置及其原理分析(Master-Slave)
Symfony 一些介绍
PHP获取微信openid 简单教程
信息学竞赛中一类决策问题的通解
CF Gym100548 K Last Defence 解题报告
一些经典的容斥问题
Copyright © 2020-2023
润新知