UpdatePanel控件使用

  UpdatePanel控件(以下简写为up)有个属性:UpdateMode 可取值 Always 和 Conditional ,默认是 Always ,总是进行自动更新,这对服务端是有性能损耗的,我们应尽量使用 Conditional 值,然后在服务端代码手动调用Update()方法来更新
这里又要牵涉到另一个属性:ChildrenAsTriggers 可选 true(默认) 和false,这个属性的作用是:当up内的控件发生事件(如Click)时,是否自动更新此up的内容,如果选True,则更新,选False则不更新,但可在事件代码中调用Update()方法手动更新,如Up1.Update();

  这种设定可用于有两个或多个up的情况,比如up1中放的全是按钮,像添加、删除、修改等,up2中放的是gridView等内容显示控件,up1中的按钮btn1调用up2.Update()方法更新up2,如果ChildrenAsTriggers设置为True,则up1也进行了更新,这是没有必要的,浪费服务器资源,所以我们要将up1的ChildrenAsTriggers设为False,禁止自动更新。
其实将按钮放在up1中,只是要让这些按钮变成异步回转按钮,如果你只有一个按钮,单独放在一个up中,显然没有必要,那该如何做呢?有两个方法:
1、在页面的page_load方法中注册, 如:ScriptManager1.RegisterAsyncPostBackControl(btn1);要特别注意的是,不用放在if(!IsPostBack){}中,否则无效。
2、使用up控件的Triggers属性,如下图所示,点添加按钮右边的小三角选择AsyncPostBackTrigger,然后在ControlID中选择要进行异步回传的控件,EventName中选择此按钮中的哪个事件进行异步回传,图中我选的是Click,这样一来我将按钮放在up外面,点击一样能进行异步更新。这样设定后就不需要手动调用Update()方法了,方法1是需要的。

你会发现小三角下有两个选项,那第二个是用来做什么的呢?PostBack,当然是页面回传了,如果把上一步中的按钮设为PostBack,那点按钮就不会是局部更新,而是整页回送了。这个其实也是很有用的,很多人都知道up的异步更新不支持FielUpload控件,我那时候做程序是把FileUpload放在up外的,可是这样会影响页面整体布局,现在终于知道怎么做了。我还是截张图吧:
我把FileUpload放在up中,点上传按钮就能上传图片了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值