Webpage has expired 和 动态生成的表Table的第一行固定
来源:互联网 发布:万国数据上市吗 编辑:程序博客网 时间:2024/05/21 06:01
1. ASP.NET在按Backword或者Forward的时候,出现错误:Webpage has expired
我们可以用以下方式解决:
一种方法是在后台用下面的方法:
在Page_load函数中添加以下代码,这样当postback的时候就可以确保page每次都是从Server端获得的:
C#代码:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
另一种方法是在前台可以用下面的方式解决:
我们用JavaScript把浏览器的back按钮或者forward按钮给禁用了,下面的代码可以放在前台页面的head部分:
JavaScript代码:
<scripttype="text/javascript">
functionpreventBack(){window.history.forward();}
setTimeout("preventBack()", 0);
window.onunload=function(){null};
</script>
2. 动态生成的表Table的第一行固定
2.1 问题
在表格向下滚动的时候,由于第一行因为滚动而隐藏了,所以最我们看不到表头信息,为了解决这个问题,看下面的叙述:
2.2 解决方案
在ASP.NET生成的表进行设计的时候,我们可以使用两个表来完成一个表的功能,一个表叫HeadTabel,另一个叫做RowTable;然后我们把这两个表分别放在一个DIV中,这个两个DIV,分别叫做HeadDiv和RowDiv;并且要设置这个2个Div的height和width,和Scrollbar,因为只有设置了Div的height和width后,当headTable或者RowTable的height或者width超过了Div的height或者width后,才会出现Scrollbar;
Table和Div的构造按照以下方式:
<div id ="HeaderDiv" style="width:920px;height:40px;overflow:hidden;"runat="server">
<tableid="HeaderTable" runat="server">
</table>
</div>
<div id ="RowDIV" style="width:940px;height:360px;overflow:scroll;"runat="server">
<tableid="rowTable" runat="server">
</table>
</div>
这里RowDiv的滚动条设置为overflow:scroll, 而HeadDiv的滚动条设置为overflow:hidden,这里这样设置是为了防止出现2个滚动条;
为了使得当RowDiv的滚动条横向滚动时,HeadDiv的也跟着滚动到相应的位置,我们必须给RowDiv加上滚动条相应事件,这里为了在后台动态添加Div控件的事件函数,我们让这个2个DIV的runat属性设置为server:
C#后台添加事件:
rowTableDiv.Attributes.Add("onscroll", "onScrollMove(this)");
Javascript前台代码:
functiononScrollMove(control) {
varhead_div = document.getElementById('ContentBottom_tableHeaderDiv');
if(head_div != null)
{
head_div.scrollLeft =control.scrollLeft;
}
}
当然,仅仅这样做有个缺点,当表中数据位空的时候,只有HeadTable里面的列名,当列名长度大于HeadDiv的长度的时候,HeadTable靠近右面的列名就看不到了,因为HeadDiv的滚动条是隐藏的;为了解决这个问题我们要分情况:
1) 当RowTable的行数大于等于1时,我们使得RowDiv的Scorll Bar事件控制HeadDiv的ScorllBar位置,此时RowDiv的overflow属性为scroll, 而HeadDiv的overflow属性为:hidden;
2) 当RowTable的行数为0时,我们使得HeadDiv的Scorll Bar控制其自己,把RowDiv的Scroll Bar隐藏掉,此时此时RowDiv的overflow属性为hidden, 而HeadDiv的overflow属性为:scroll;
我们这样可以在后台用代码控制其属性设置:
C#代码如下:
HeadDiv.Style.Add("overflow","scroll");
RowDiv.Style.Add("overflow", "hidden");
这里需要注意:只有当Table的height或者width大于了Div的height或width的时候,这是DIV的Scorll Bar才会出现;
- Webpage has expired 和 动态生成的表Table的第一行固定
- js动态添加table表的一行和删除一行
- 动态添加和删除table的一行
- 动态添加和删除table的一行
- js 动态生成宽度固定的table控件
- js动态生成table的一行 并且是复制的当前行 列都一起生成了
- history.back() webpage has expired. 网页已过期
- Your password has expired的解决办法
- 固定Table第一行或某几行不随滚动条滚动
- table 固定列和行的实现
- JSF: 动态生成的DataTable, 固定表头, 固定行标,
- JSF: 动态生成的DataTable, 固定表头, 固定行标
- HashMap与Has和Table的区别
- 固定table的宽度
- 固定table的表头
- jquery动态给指定的table添加一行tr td
- table表头和首列的表格固定-JQuery、js实现的Table表头固定
- table表头和首列的表格固定-CSS实现的Table表头固定
- JS获取地址栏参数
- 贝叶斯定理
- 第4节 地址映射机制
- Tomcat启动异常:Multiple Contexts have a
- [Codecademy] HTML&CSS 第四课:Social Networking Profile
- Webpage has expired 和 动态生成的表Table的第一行固定
- CollabNetSubversionEdge在SuSe Linux下安装
- JQuery触发事件的方法
- Redis印象总结
- 用javascript和PhoneGap 3.0.0加速计制作移动app
- ubuntu 下的PDF 阅读器 okular
- Sublime Text 2快捷键大全
- 弹出窗口 JS window.open()属性
- 经典linux内核面试题