Page_Load事件 js脚本 aspx执行顺序

示例:

实现目的:某对象被使用时,将此对象对应的功能按钮禁止;

后台代码:Page_Load() 事件下的代码

前台代码:对象不确定,这里采用对象的动态绑定

运行效果:页面初始化时,对应的被占用对象的总功能按钮不会被禁止,点击页面中任一按钮时,此功能按钮才会被禁止。

分析:对于页面的初始化,代码执行顺序:

        1) Page_Load事件,包括if(!isPostBack){}中的语句;

        2)向IE发出请求,IE先执行页面中的脚本语句,此时页面呈现;

        对于页面中的按钮,代码执行顺序:

        1)IE会先查看此按钮是否有对应的onclientclick()事件,如果有的话,则要去执行这个事件对应的JS脚本。执行完后,若这个脚本返回false,则IE不会进入服务器去执行后台回发事件代码;若这个脚本返回值为true(默认返回值为true),则进入服务器区执行后台代码。

        2)若此按钮没有对应的onclientclick()事件,则查看此按钮是否有回发功能(注意:一部分按钮的回发功能需要通过语句  AutoPostBack = "True"  来开启,如 asp:RadioButtonList、asp:TextBox等;

        3)若果按钮有回发功能:则根据 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="dyPinlu.aspx.cs" Inherits="ManufacturingManagement_paichan_dyPinlu" %> 语句在解决方案中找到指定的类文件(如:

public partial class ManufacturingManagement_paichan_dyPinlu : System.Web.UI.Page

{}

);故这里需注意,后台中不要有相同名字的子类;

        4)继3)所述的动作后,IE会先执行Page_Load事件中的代码,当然,此时不会再执行if(!IsPostBack){}中的语句。然后再执行按钮对应的后台Click事件中的代码,执行完成后返回客户端并将执行结果返回给IE,此时IE会将页面中的Js脚本执行了(当然,如果这个JS是在页面载入时会执行的话,例如直接在<script language >alert("ddd")</script>就会被IE执行)。

解决方法:在后台if(!IsPostBack)进行动态绑定,并初始化,为保证被使用对象及时被禁止,在Page_Load下写禁止功能代码

         if (!IsPostBack)
        {
                rblShebeihao.DataSourceID = "SqlDataSource3";
                rblShebeihao.DataTextField = "FurnaceBanchNum";
                rblShebeihao.DataValueField = "FurnaceBanchNum";
                rblShebeihao.DataBind();
                ......
        }

前台代码 <asp:RadioButtonList ID="rblShebeihao" runat="server" 
                    RepeatDirection="Horizontal" AutoPostBack = "True" 
                    OnSelectedIndexChanged = "shebei_SelectedIndexChanged" >
            </asp:RadioButtonList>

转载于:https://my.oschina.net/starmier/blog/141056

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值