博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Page_Load事件 js脚本 aspx执行顺序
阅读量:6251 次
发布时间:2019-06-22

本文共 1486 字,大约阅读时间需要 4 分钟。

hot3.png

示例:

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

后台代码: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

你可能感兴趣的文章
Ryubook_1_switch_hub_源码
查看>>
Java几种路径的获取
查看>>
痞子衡嵌入式:ARM Cortex-M文件那些事(4)- 可重定向文件(.o/.a)
查看>>
centos7 源码安装nginx
查看>>
php 下载word 含图片
查看>>
栈的顺序存储实现
查看>>
编年史:OI算法总结
查看>>
IOS Exception 1(RangeText="[SKTexture]()")
查看>>
IOCP基础封装
查看>>
kendo column chart
查看>>
codeforces 721D Maxim and Array
查看>>
sass学习
查看>>
六、使用函数
查看>>
Windows Server 2012 蓝屏 Wpprecorder.sys 故障
查看>>
ImageMagick 批量处理图片脚本
查看>>
MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
查看>>
【IT公司笔试面试】75道逻辑推理题及答案
查看>>
免费馅饼
查看>>
《Typecript 入门教程》 1、类
查看>>
使用 xsd.exe 命令工具将 xsd 架构生成 类(CS) 文件
查看>>