asp点击按钮之后自动刷新页面,日期文本框被清空怎么解决
比如这个界面,进行查询(我设置了日期为今天的默认值,图中是点击查询前)
当我点击查询之后,两个时间输入框立马变成默认(“今天”)
然后我发现,如果我不设置默认值,一进来就是空的话,点击之后就会保留你的选择(我之前做的时候怎么不是这样,记得会被清空的,奇怪,还是我记错了?)
那我就是要设置默认值呢?,又不想让他清空变回默认,一开始我的思路是,变量获取值之后再赋值回去,问题是,不管用啊,因为它刷新了,于是就想到了js中的定时器,还有选择器JQuery
首先设置两个lable,将它们隐藏,千万不要用Visible属性,因为会读取不到值,用css display none掉
<div>
<%--隐藏,用来记录用户选择的日期--%>
<asp:Label ID="lastart" runat="server" Text="" CssClass="none"></asp:Label>
<asp:Label ID="laend" runat="server" Text="" CssClass="none"></asp:Label>
</div>
然后当点击(我图中的是查询)按钮之后,先在VS的按钮事件中给添加的lable赋值
//start和end都是变量,接收那两个日期文本框的值
this.lastart.Text = start;
this.laend.Text = end;
Js写定时器,当两个lable有值的时候就会给日期文本框,当然,你会看到文本框会从默认值跳到lable的值,因为时间是300ms,你也可以设置的更快一些
//定时器,对付刷新
var timer = setInterval(function () {
//判断两个lable的值是不是空,因为定时器一直在开着,时间设置为300ms
//为什么不点击按钮之后再开?因为会刷新页面没用,所以一直开着
//选择器的id怎么和上图的不一样?多了个“All_”?因为我用了母版,前面是母版前缀
//!=""的时候就是有值,就赋值给两个日期文本框
if ($("#All_lastart").text() != "" && $("#All_laend").text() != "") {
$("#All_starttime").val($("#All_lastart").text());
$("#All_endtime").val($("#All_laend").text());
//关闭定时器,不用担心,点击(我图中是查询)按钮之后会刷新,又会打开
//为什么要关闭?因为一直在给值给日期选择文本框,这样会让你选择的又变回去
clearInterval(timer);
}
}, 300)