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
;
}
查看全文
相关阅读:
Const is faster than static const
创新点子:博客图文混编工具
Performance Optimization Articles
Notes on distributed rendering
Tested distancebased sorting and axisbased sorting
How do exes/dlls generated with the /platform:x switch interact?
SQL中判断字符串中包含字符的方法
C#获取指定IP的主机名
将ArrayList设为wpf的数据源
WPF的DataGrid中DataGridHyperlinkColumn的用法
原文地址:https://www.cnblogs.com/RChen/p/204525.html
最新文章
关于HTML5在线播放x.264编码的mp4格式文件的长时间缓冲问题
9.9Go之结构体
9.9Go之函数之函数底层实现
关于clientWidth scrollWidth offsetWidth的理解
对jQuery选择器的总结
mvc基础系列说谈(7)——数据验证(下)
mvc基础系列说谈(8)——修饰标签(修饰属性,过滤器)(上)
mvc基础系列说谈(6)——数据验证(上)
Moq测试基础说谈(二)——Mock方法,方法参数
Moq测试基础说谈(一)——简介,下载
热门文章
mvc基础系列说谈(10)——修饰标签(修饰属性,过滤器)(下)
mvc基础系列说谈(5)——参数与值传递,提交数据
Json.net|NH|Log4net|Test等工具下载地址
mvc基础系列说谈系列导航
mvc基础系列说谈(9)——修饰标签(修饰属性,过滤器)(中)
Some references
Repost: The Art of Rendering
Incremental Geometry Approximation With Procedural Support
On optimizing photon mapping
Testing C compiler
Copyright © 2011-2022 走看看