如何让按钮在单击后直接执行click事件里面的代码,而不执行Page_Load中的代码
如题,注意是单击后,所以放到OnPreRender事件中不行,因为,放入OnPreRender中后,不只是单击按钮,就是不单击也会执行里面的代码。原因如下
我做了一个网页,比如首页有很多新闻的datalist还有一个登陆框,登陆框里面有个button是登陆用的,那么网页大概代码应该如下
private void Page_Load(object sender, System.EventArgs e)
{
//放入datalist的显示的代码,里面肯定包括了很多连接数据库等的代码
}
#region Web 窗体设计器生成的代码
private void Button1_Click(object sender, System.EventArgs e)//登陆按钮代码
{
if(成功)Response.Redirect("huiyuan.aspx");
if(失败)Response.Redirect("shiban.aspx");
//点击登陆按钮后执行登陆操作,如果成功跳转到另外一个会员页面,不成功跳转到失败页面
}
分析:当我们打开主页的时候,先执行Page_Load,用来显示首页新闻的内容,这是很必要的,之后如果输入了用户名密码,点击登陆按钮,那么肯定仍然先初始化,之后是先执行了Page_Load的代码,最后再执行Button1_Click的代码,按照代码所写,我们知道不管登陆能否成功,我们都要跳转到一个新的页面,也就是说,点击登陆后那么执行Page_Load的代码就变得没有意义了,这等于是它白白浪费了服务器资源,所以有什么办法让按钮在单击后先执行click事件呢?(放到OnPreRender事件中不行,OnPreRender事件无法判断是否点击了按钮,这会使得第一次打开页面就直接先三执行click事件,这样在用户名秘密都没有输入的时候肯定直接跳转到失败页面,而无法显示新闻内容了)
我相信我说的很明白了,望各位指教,谢谢!