ASP.NET中的IsPostBack和AutoPostBack

1.IsPostBack

新建一个网站,在页面放置一个DropDownList和一个按钮,我希望点击按钮之后添加往DropDownList之中添加一条内容

//Default.aspx.cs

protected void Page_Load(object sender, EventArgs e)
    {
        DropDownList1.Items.Add("111111");
        DropDownList1.Items.Add("222222");
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        DropDownList1.Items.Add("这是按钮添加的一条");
    }

运行效果:


很明显,这不是我们想要的结果,原因是页面在每一次刷新时都会运行Page_Load函数,页面初次加载时运行一次,点击按钮时又加载一次,导致上面的结果,如何解决?

protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack == false)
        {
            DropDownList1.Items.Add("111111");
            DropDownList1.Items.Add("222222");
        }
    }

  
    运行正确,通过调试我们可以发现第二次并没有运行if里面的内容,说明除了第一次IsPostBack属性为false时,以后IsPostBack属性都为true,相信大家都理解了吧,哈哈哈哈 偷笑
 
2.AutoPostBack
  还是以上面的例子来说明,双击DropDownList,添加事件如下:
  protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
            DropDownList1.Items.Add("这是当选中DropDownList时添加的一项");
    }
   我希望当选中DropDownList时里面应该添加一项,但是我们发现没有添加,我们调试一下:
  


发现程序并没有运行到这儿,DropDownList没有添加一项也就不足为奇了,怎么解决?其实很简单,把DropDownList的AutoPostBack属性勾上就好了


再次运行就是我们想要的结果,哈哈哈哈,是不是很简单,大家学会了吧 微笑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值