zoukankan
html css js c++ java
IPostBackDataHandler实现CollapablePanel控件的状态保持
在CollapablePanel控件的设计过程中,遇到了这样一个问题:当某一项面板展开时,执行页面后,控件中面板的状态将恢复到原先的状态,这样是不是特感到郁闷。
查了一下MSDN,从中知道了可以通过实现IPostBackDataHandler来实现。
下面分别给出实现代码:
1、在Page_Init将控件注册为需要回发处理的控件。
protected
override
void
OnInit(EventArgs e)
{
base
.OnInit(e);
//
遍列每一个CoolPanel,初始其状态
foreach
(CollPanel p
in
m_Panels)
{
p.i_Expanded
=
m_ExpandSolePanel
?
false
: p.Expanded;
}
if
(m_ExpandSolePanel)
{
m_Panels[
0
].i_Expanded
=
true
;
}
//
注册控件
if
(Page
!=
null
)
{
Page.RegisterRequiresPostBack(
this
);
}
}
2、在OnPreRender中注册一个HtmlInputHidden控件,并将子面板集合的状态写入。
protected
override
void
OnPreRender(EventArgs e)
{
base
.OnPreRender(e);
string
s
=
""
;
foreach
(CollPanel p
in
m_Panels)
{
s
+=
(p.i_Expanded.ToString()
==
"
True
"
?
"
1
"
:
"
0
"
)
+
"
,
"
;
}
if
(Page
!=
null
)
{
Page.RegisterHiddenField(
this
.ClientID
+
"
_state
"
, s);
}
}
3、最后,通过LoadPostData从客户端获得状态
public
bool
LoadPostData(String postDataKey, NameValueCollection values)
{
//
从客户端获得每个Panel的状态
string
value
=
values[
this
.ClientID
+
"
_state
"
];
if
(value
!=
null
)
{
string
[] s
=
value.Split(
'
,
'
);
for
(
int
i
=
0
; i
<
m_Panels.Count; i
++
)
{
m_Panels[i].i_Expanded
=
s[i]
==
"
1
"
?
true
:
false
;
}
}
return
false
;
}
[ 完 ]
呵呵,是不是很简单哦!!
查看全文
相关阅读:
Android开发效率—Eclipse快捷键
Android学习笔记之AndroidManifest.xml文件解析
Android开发环境的安装 Eclipse
运用CodeSmith Studio实现C#项目构架
使用C#开发ActiveX控件(新) 转 http://www.cnblogs.com/yilin/p/csharp-activex.html
C# winFrom 制作、打包、签名、发布Activex全过程
C# Server.MapPath()
PowerDesigner导出表到word
powerdesigner 15 如何导出sql schema
PowerDesigner15使用时的十五个问题
原文地址:https://www.cnblogs.com/faib/p/701637.html
最新文章
10个最佳Node.js企业应用案例:从Uber到LinkedIn
什么是Docker Volume?
价值1.35亿美元的BUG
虚拟机与Docker有何不同?
JavaScript初学者必看“箭头函数”
Fundebug累计处理1000万条错误事件!
Docker命令行与守护进程如何交互?
将Hexo博客部署到云主机
JavaScript初学者必看“this”
我是这样发现ISP劫持HTTP请求的
热门文章
在Entity framework中使用事务
SQL Server 2016 中有外键的表无法被Truncate,只能被Delete
C#中Lambda表达式类型Expression不接受lambda函数
Non-Nullable Types vs C#: Fixing the Billion Dollar Mistake (转载)
C# 6.0 的?.运算符
在SQL Server中用好模糊查询指令LIKE (转载)
.NET 中 如果一个Task A正在await另一个Task B,那么Task A是什么状态
C# 类中的静态字段始终继承自基类
ASP.NET Core 2.0中如何更改Http请求的maxAllowedContentLength最大值
ASP.NET Core MVC如何上传文件及处理大文件上传
Copyright © 2011-2022 走看看