簡體   English   中英

動態添加的控件導致靜態按鈕事件僅在第二次單擊后才會觸發

[英]Dynamically added controls causing static button event to only fire after second click

我有一個自定義用戶控件,其中包含控件的動態列表以及在aspx頁上聲明的靜態按鈕(以及OnClick聲明)。 該按鈕顯示或隱藏包含動態控件列表的面板。

我發現一個我認為與動態添加的控件有關的問題,其中按鈕事件方法(即使它不是動態添加的)僅在第二次單擊時觸發。 認為這與以下事實有關:在創建控件之前已將按鈕事件方法連接起來,並且當頁面上突然出現新的動態控件時,事件方法在回發時會被錯誤地連接。 第二次單擊它是有效的,因為動態控件已經全部創建並且只是持久存在。(如果我錯了,請有人糾正我-我花了一整天的時間來跟蹤它:()

我的問題是,我該如何解決? 我也嘗試動態地為按鈕連接事件,但是我不確定將所有這些聲明放入哪個順序。有什么想法嗎?

您確定按鈕在第一次點擊時就重新開機嗎? 否則,可能與客戶端有關。 假設該按鈕確實是第一次發布,並且其提交按鈕(UseSubmitBehavior =“ true”)則可能是由於

  1. 發生后數據處理后,可能會添加用戶控件(后數據處理負責引發按鈕事件)
  2. 由於某些原因,按鈕控件的ID(唯一ID)在回發后會發生變化,或者按鈕ID從發布數據處理到呈現控件的時間都會發生變化。

如果您無法解決問題,則可以采用其他方法-通過查看諸如

if (Request.Form[button.UniqueID] != null) { // Do button click processing }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM