PostBack与AutoPostBack的功能解释

我们在程序里面,经常会看到if(!IsPostBack){}这样的句子,那么,PostBack是起到什么作用呢?

PostBack的意思是回发,我们可以把他理解成第二次执行该程序。如果你还不是很理解的话,看看下面的例子:

1.我们向页面中添加一个dropdownlist,一个textbox,一个button控件,在.CS里写如下代码

protected void Page_Load(object sender, EventArgs e)
{
this.DropDownList1.Items.Add("aaaaa");
this.DropDownList1.Items.Add("bbbbb");
}
protected void Button1_Click(object sender, EventArgs e)
{
this.DropDownList1.Items.Add(this.TextBox1.Text);
}

运行程序,在textbox中输入ccccc第一次点button,dropdownlist中会添加text中的文本,那么,如果你第二次 button,你猜你会得到什么结果?是的,出现了两次的aaaaa,bbbbb,aaaaa,bbbbb,ccccc。所以,通常我们就用 PostBack来处理这个问题。

2.protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.DropDownList1.Items.Add("aaaaa");
this.DropDownList1.Items.Add("bbbbb");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
this.DropDownList1.Items.Add(this.TextBox1.Text);
}

运行,Oh Yeah,是不是可以咯,咯咯,明白了postBack的用处了把。

 

那么,什么是AutoPostBack呢?AutoPostBack是一种机制(自动根据Web控件的一些事件,将页面自动发回服务器。在一些Web控件中,称为auto post back属性。如果设置为true ,当此控件的某事件发生时,将发送一个request到服务器。
例如:
DropDdownList(Combo box)控件的属性AutoPostBack。如果我们将其设置为true ,当用户在组合框中选择不同的值时,被触发的事件将发送一个request给服务器。
为什么我们需要发送请求到服务器?
在此情况下的网页一般是用来输入用户信息的。该网页包含两个组合框控件:国家和城市。当用户选择某国,适当的城市应该显示到另一组合框,当然这一般是从数据库加载。为实现这一要求,我们可以设置国家组合框的AutoPostBack属性为true 。如果我们这样做,当国家组合框触发了事件,那么将有一request发送给服务器,而此时,可执行一次,我们预先写好的根据国家值从数据库读取适当的城市值。

根据上面的理解,我的理解是,AutoPostBack是用在一个控件中的值变换会带来另一个控件值变换时,需要设置为true,它的AutoPostBack属性默认为False,如果不把属性改为True,他的SelectedIndexChanged()事件中的代码就不会执行(SelectedIndexChanged()是选控件中的项所触发的事件)。不过话说回来,频繁的回到服务器是一种非常不好的用户体验,所以现在又使用ajax,,呵呵。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值