为什么!IsPostBack里面的代码一次也不执行

lihzsonny 2016-02-25 03:49:53
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using _tjhdtx;

public partial class admin_news_add : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//if (Session["username"] != null)
//{
if (!this.IsPostBack)//首次登陆的时候执行的
{
//标记一
tx_date.Text = DateTime.Now.ToString("yyyy-MM-dd");
Random rand = new Random();

Session["fid"] = DateTime.Now.ToString("yyyyMMddHHmmss") + rand.Next(0, 999);
JS.JScript.Alert("我现在在IsPostBack");

}
}
protected void Button1_Click(object sender, EventArgs e)
{
//省略
}

}

本人就是无法进入标记一下面的代码,机器重启都不行,请高手们指教。
...全文
224 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果你贴出调试画面,别人就知道你根本没有执行到 if (!this.IsPostBack) 这条语句,而不是什么“无法进入标记一下面的代码”。
秋的红果实 2016-02-26
  • 打赏
  • 举报
回复
引用 9 楼 lihzsonny 的回复:
<%@ Page Language="C#" AutoEventWireup="false" validateRequest="false" CodeFile="news_add.aspx.cs" Inherits="admin_news_add" %>
当我将AutoEventWireup="false" validateRequest="false" 改成AutoEventWireup="true" validateRequest="true" 问题消失,但不知为何,还要讨教各位高手。
原来是改了这里的东西,简单讲AutoEventWireup="true"时,button_click()方法执行前,要执行Page_Load()方法;设置为false时,就只执行button_click()了。 asp.net实行事件回发机制,触发一个事件后,事件和对应的方法加密放置到隐藏域viewstate中,和服务器进行通讯。点击button后,这个事件要“回发”给服务器,AutoEventWireup="true"时,首先要执行page_load,不仅是button的click事件,其他的如dropdownlist的selectindexchanged事件,也一样的机制
lihzsonny 2016-02-26
  • 打赏
  • 举报
回复
<%@ Page Language="C#" AutoEventWireup="false" validateRequest="false" CodeFile="news_add.aspx.cs" Inherits="admin_news_add" %>
当我将AutoEventWireup="false" validateRequest="false" 改成AutoEventWireup="true" validateRequest="true" 问题消失,但不知为何,还要讨教各位高手。
  • 打赏
  • 举报
回复
debug断点加在if (!this.IsPostBack)这一行上呢,不要连这行都没进,那就是没找对问题方向,结果都是瞎猜
秋的红果实 2016-02-25
  • 打赏
  • 举报
回复

 protected void Page_Load(object sender, EventArgs e)
    {
        //if (Session["username"] != null)
        //{
            if (this.IsPostBack)//首次登陆的时候执行的
            {
                return;
            }
            
            //标记一。注意位置,if()在上面
            tx_date.Text = DateTime.Now.ToString("yyyy-MM-dd");
            Random rand = new Random();
 
            Session["fid"] = DateTime.Now.ToString("yyyyMMddHHmmss") + rand.Next(0, 999);
            JS.JScript.Alert("我现在在IsPostBack");
 
            }
    }
江南小鱼 2016-02-25
  • 打赏
  • 举报
回复
怎么可能一次都木有执行呢?你说一次也不执行的依据是什么? debug一下看执行不执行~
我本良人 2016-02-25
  • 打赏
  • 举报
回复
if (!IsPostBack) { Response.Write("hello word"); } 我试了可以啊
lihzsonny 2016-02-25
  • 打赏
  • 举报
回复
引用 3 楼 shingoscar 的回复:
你是通过什么方式访问这个页面的?
通过登录界面login.aspx访问这个页面的。
Poopaye 2016-02-25
  • 打赏
  • 举报
回复
说明this.IsPostBack == true
Poopaye 2016-02-25
  • 打赏
  • 举报
回复
你是通过什么方式访问这个页面的?
正怒月神 版主 2016-02-25
  • 打赏
  • 举报
回复
首次执行,之后的回发不会执行

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧