Js控制ASPX页面刷新的土办法

       我们知道在aspx页面里激发一个事件都需要把页面Post到服务器,这样如果在客户端通过调用javascript进行页面刷新,IE就会弹出提示框问是否重新提交,但是我们本意只是想刷新数据显示。怎么办呢,我想的办法就是模拟控件激发事件的动作,让.net误认为是改变了控件的状态或点击了刷新按钮,让页面Post达到刷新数据的作用。

       首先拖入一个服务器控件到aspx页面,设置此控件的ID,这里为了改变状态方便拖入的是checkbox,然后在此控件的代码里加上【style="DISPLAY: none"】这个属性意在隐藏此控件,但不能用【Visible=false】这样控件就不会加载到客户端了。控件的代码如此形式:【<asp:checkbox id="chkReload" style="DISPLAY:none" runat="server" AutoPostBack="True"></asp:checkbox>

       添加客户端js代码:

<script language="javascript">
function reload()
document.Form1.chkReload.checked 
= !document.Form1.chkReload.checked;
 __doPostBack('chkReload',''); 
}

</script>

CS页面加入处理此控件的事件代码:

private void chkReload_CheckedChanged(object sender, System.EventArgs e)
{
            Bind();
}

这样只要客户端调用js的reload()方法就可以刷新页面了,跟我们点击刷新按钮的效果一致。没有深入研究不知道有没有更好的办法。

posted on 2005-09-23 18:00  dragonpro  阅读(5564)  评论(10编辑  收藏  举报

Free Web Counter