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
;
}
查看全文
相关阅读:
nok
Applescript
如何混编c++
排序——希尔排序
排序——插入排序(找坑)
排序——选择排序
排序——冒泡排序
还债——Java中的Set, List, Map
还债——Java中基本数据类型,String,数组之间转换(数组不能通过toString转换为String)
还债——Java获取键盘输入的三种方法
原文地址:https://www.cnblogs.com/RChen/p/204525.html
最新文章
2020-09-19:TCP状态有哪些?
2020-09-18:LRU手撸,说下时间复杂度和空间复杂度。
2020-09-17:arp协议缓存过程是怎样的?
2020-09-16:谈谈TCP的控制位?
NSRunloop
动画相关
标准动画时长
移动、尺寸改变
CGAffineTransform
坐标系统、像素
热门文章
建立简单的服务器端程序
获取IP地址
JAVA学习路线图---(JAVA1234)
GitHub项目协作基本步骤
调用另一个Activity
在word中使用notepad++实现代码的语法高亮
Android 应用中十大常见 UX 错误
事件处理之二:点击事件监听器的五种写法
如何解决安卓SDK无法下载Package的问题
adb常用命令
Copyright © 2011-2022 走看看