页面刷新后,能保持原来的层状态!
问题如下:
我做的网页,JS动态使用按钮控制层的显示和隐藏,一个页面里有好多层,层里面有按钮服务器控件,click后每次刷新后,页面都会回到初始状态,因为我起初设置层都是不显示的。我希望层能保持我点选按按钮前的状态。
MaintainScrollPositionOnPostback 等属性,还有几个脚本都是返回的SCROLL的位置,我是动态的,尝试后都无效。
以上问题是我在CSDN里面看到一个朋友和我一样的问题!
有朋友是这么回答的如下:
我举个最简单的例子来说明一下。
假设你的页面上用一个<DIV>作为一个层,一开始是不可见的。在操作过程中可能会变为可见,你想要做的就是当页面postback刷新之后,层的可见性还是保留提交前的那个状态。
要达到这样的目的,你需要作如下工作:
1、给这个DIV一个唯一的ID,比如layer_01
2、在ASPX页面中声明一个形式如function setLayerState(stateString)的java script函数,当其中包含"layer_01_visible=true"的值的时候,设置layer_01可见。具体写法我不提示了。
3、在ASPX页面中声明一个hidden field,假设叫做layerState,其value初始为空
4、当layer_01可见性发生改变的时候,用java script函数设定layerState的值为"layer_01_visible=true"。如果有多个层需要管理,你可以自己决定怎么存储,比方说增加"layer_01_visible=true;layer_02_visible=false;layer_01_height=100px"等等
5、在ASPX页面的Page_Load代码中,如果IsPostBack为真,则获取layerState这个隐藏字段的值,使用Page.RegisterStartupScript()功能调用setLayerState,参数就是layerState的值
以上5步说起来简单,但对我来说,真不知道应该从何入手,希望高手帮我写一下这个代码.小弟万分感谢啊!
------解决方案--------------------一个页面里有好多层,层里面有按钮服务器控件,click后每次刷新后
这样去情况你应该使用ajax与后台交互
------解决方案--------------------第一:可以用一个Hidden保存无状态控件的状态.在JS的window.onload中加载改变的状态.
第二:用Ajax做到无刷新.
------解决方案--------------------可以用弹出层里面包括iframe提交上传,这样只是你的iframe刷新不会影响主界面。
------解决方案--------------------
<form target="AA"
<iframe name="AA" style="display:none"