之前有讨论过ASP.NET Web Form "事件"里面的 "sender"

详见 http://www.dotblogs.com.tw/mis2000lab/Tags/sender/default.aspx

有位朋友问到「在Page_Load事件里面,如何得知是哪个控件触发 PostBack ??」

我们写一个简单程序试试看

画面上只有一个 <asp:Button>按钮:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
        }
        else      {
            Button btn = (Button)sender;   // 注意 错误讯息!!
            Response.Write("Button被按下了(Page_Load)!---" + btn.Text);
//讯息如下:
 
'/' 应用程序中发生服务器错误。
 
无法将类型 'ASP.postback_sender_aspx' 的对象转换为类型 'System.Web.UI.WebControls.Button'。
(批注:postback_sender_aspx 是我程序的文件名 PostBack_Sender.aspx) 
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Button btn = (Button)sender;
        Response.Write("<hr />Button被按下了(Button1_Click)!---" + btn.Text);
    }
 
 

好的,我们把 Page_Load事件的程序改写一下

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
        }
        else      {
            var btn = sender;   // 注意讯息!!
            Response.Write("Button被按下了(Page_Load)!---" + btn.ToString());
 
        }
    }
 

执行成果如下:

Button被按下了(Page_Load)!---ASP.postback_sender_aspx

(批注:这是我程序的文件名 PostBack_Sender.aspx)

如果您想要知道是哪个控件,触发了ASP.NET 的PostBack

这两篇文章有简单的范例,可以帮助您抓得到:

关键词 C# --  Request.Params["__EVENTTARGET"]

关键词 VB --  Request.Params("__EVENTTARGET") 

[ASP.NET]在Page_Load取得触发PostBack的组件  (ASP.NET Button没有设定 UseSubmitBehavior="false" 就抓不到值)
 
 
 

Page_Load与sender -- PostBack是由哪个 ASP.NET控件引起 ?的更多相关文章

  1. asp.net控件的Hyperlink控件

    Asp.net控件: Hyperlink控件:Hyperlink控件又称为超链接控件,该控件在功能上跟Html的<a herf=””>控件相似,其显示的模式为超链接的形式. 注意: Hyp ...

  2. ASP.NET控件之RadioButtonList

    “RadioButtonList”控件表示一个封装了一组单选按钮控件的列表控件. 可以使用两种类型的 ASP.NET 控件将单选按钮添加到网页上:各个“RadioButton”控件或一个“RadioB ...

  3. asp.net控件的异步刷新

    需求:我们知道,asp.net控件中的button控件,默认是开启了自己主动回发的,而有时候.我们不想刷新整个界面.而仅仅想局部刷新,可页面中又偏偏用到了.net button控件. 尽管我非常讨厌. ...

  4. asp.net <asp:Content>控件

    <asp:Content ID="Content2" ContentPlaceHolderID="CPH_MainContent" runat=" ...

  5. FineUI 基于 ExtJS 的专业 ASP.NET 控件库

    FineUI 基于 ExtJS 的专业 ASP.NET 控件库 http://www.fineui.com/

  6. ASP.NET控件<ASP:Button /> html控件<input type="button">区别联系

    ASP.NET控件<ASP:Button />-------html控件<input type="button">杨中科是这么说的:asp和input是一样 ...

  7. asp.net控件开发基础(1)(转)原文更多内容

    asp.net本身提供了很多控件,提供给我们这些比较懒惰的人使用,我认为控件的作用就在此,因为我们不想重复工作,所以要创建它,这个本身便是一个需求的关系,所以学习控件开发很有意思. wrox网站上有本 ...

  8. 把某个asp.net 控件 替换成 自定义的控件

    功能:可以把某个asp.net 控件 替换成 自定义的控件 pages 的 tagMapping 元素(ASP.NET 设置架构) 定义一个标记类型的集合,这些标记类型在编译时重新映射为其他标记类型. ...

  9. Asp.Netserver控件开发的Grid实现(三)列编辑器

    以下是GridColumnsEditor的实现代码: GridColumnsEditor.cs using System; using System.Collections.Generic; usin ...

随机推荐

  1. Ext.Net 复制GridPanel的数据

    Ext.Net 复制GridPanel的数据 2013-11-28 09:50:04|  分类: Ext.net |  标签: |举报 |字号大中小 订阅     CSS: <styletype ...

  2. 天梯赛L3-001. 凑零钱(01背包记录物品)

    L3-001. 凑零钱 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 韩梅梅喜欢满宇宙到处逛街.现在她逛到了一家火星店里,发现 ...

  3. MS SQL Server的LTRIM,RTRIM和TRIM函数

    在MS SQL Server 2017有了一个新函数TRIM,整合以前版本LTRIM和RTRIM. 这几个函数都是去除字符串头部后尾部的空格. DECLARE @str NVARCHAR(MAX) = ...

  4. 在element-ui的表格组件中为表头添加Tooltip 文字提示

    在使用表格组件的时候经常遇到的问题,列数很多,而表头的文字描述长度很长 <el-table-column v-if="!column.event" v-for="( ...

  5. mui框架使用心得

    这段时间一直在用mui框架做项目,现在很多快速开发的app大部分是用MUI和APICloud开发的.所以我就把他们对比了一下. mui有自己的UI组件,我在项目中,很少用框架的UI组件,而使用框架的j ...

  6. IT兄弟连 JavaWeb教程 经典案例

    案例需求:编写一个jsp servlet程序,在login.jsp发起login.do登录请求,当输入的用户名是abc密码是123时,则判断是登录成功,其它暂时认为是登录失败.当用户登录成功时,将用户 ...

  7. dual 视图模拟 Oracle

    CREATE OR REPLACE VIEW dual ASSELECT NULL::"unknown"WHERE 1 = 1;

  8. Unity---协程的简单使用

    1.作用 协程的作用一共有两点: 延时执行代码. 在某项操作完后再执行代码. 就是控制代码在特性的时间执行. 2.协程和线程的区别 协程不是异步,不需要考虑同步和锁问题 线程避免了无意义的调度,提高了 ...

  9. Glassfish 4 修改server.log 等配置

    如果所示:

  10. oracle view and MATERIALIZED VIEW

    View http://blog.csdn.net/tianlesoftware/article/details/5530618 MATERIALIZED VIEW http://blog.csdn. ...