
常用软件类: |
|杀毒安全 | |联络聊天 | |网络软件 | |多媒体类 | |系统工具 | |图形图像 | |系统工具 | |应用软件 | |行业软件 |
开发设计类: |
|动画制作 | |图像处理 | |3D设计 | |操作系统 | |站长学院 | |网络相关 | |WEB设计 | |数据库类 | |程序开发 |
百度搜藏|
新浪VIvi|
365key|
Younote|
搜狐 |
博采中心|
你好BLOG|
亿友网摘|
网摘博客|
POCO网摘|
和讯网摘|

| 1 protected override void LoadViewState(object savedState) 2 { 3 if (savedState != null) 4 { 5 Triplet triplet = (Triplet)savedState; 6 base.LoadViewState(triplet.First); 7 Reflector.InvokeMethod(this.FirstListBox.Items, "LoadViewState", new object[] { triplet.Second }); 8 Reflector.InvokeMethod(this.SecondListBox.Items, "LoadViewState", new object[] { triplet.Third }); 9 } 10 else 11 { 12 base.LoadViewState(null); 13 } 14 this._stateLoaded = true; 15 } 16 17 protected override object SaveViewState() 18 { 19 if (EnableViewState == false) 20 return null; 21 //启用控件视图状态 22 object x = base.SaveViewState(); 23 object y = Reflector.InvokeMethod(FirstListBox.Items, "SaveViewState", null); 24 object z = Reflector.InvokeMethod(SecondListBox.Items, "SaveViewState", null); 25 if ((x == null) && (y == null) && (z == null)) 26 { 27 return null; 28 } 29 return new Triplet(x, y, z); 30 } |
为了省事,我没有自定义ListItem类,改为直接使用ListItemCollection来存储数据。因为MS没有提供ListItemCollection. SaveViewState和LoadViewState,我们必须采用反射的方式来调用这二个方法来保存数据。很让人郁闷。每当到紧要关头,就会发现MS写的类,方法不是internal,就是sealed。无可奈何~当然,你也可以自己写一个类来代替ListItem类.