[ASP.NET]在Page_Load取得触发PostBack的控件

ASP.NET真是博大精深,最近遇到一個UserControl的小問題,

逼得我不得不在Page_Load就取到觸發事件的元件,

其實很簡單,只要取Request.Params["__EVENTTARGET"]就好。

ASP.NET在PostBack時,會把觸發事件的該元件ClientID塞到__EVENTTARGET參數裡,

所以我們就可以在後端透過Request.Params["__EVENTTARGET"],知道是哪個元件觸發事件,

範例程式如下:

1 protected void Page_Load(object sender, EventArgs e)
2 {
3     if (this.IsPostBack)
4     {
5         var ctlName = this.Request.Params["__EVENTTARGET"];
6  
7         Response.Write(ctlName);
8     }
9 }

有一點要注意的是,Button元件要加上UseSubmitBehavior="false"屬性,才能取的到資料,像:

<asp:Button ID="Button1" runat="server" Text="Button" UseSubmitBehavior="false"/>

 

以上,終於解決我的問題,小小心得是,UserControl最好是在Page_Load就新增好,

最好不要在Click Event事件裡再去動態新增或刪除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值