文章出處

 

在aspx頁面有textbox文本框,還有三個button按鈕。啟用textbox的TextChanged事件和button的click事件。

問題:

現在在textbox文本框輸入完數據按“回車”后,會觸發TextChanged事件,但同時還會觸發該頁面第一個button按鈕的Click事件。

解決方法一:

當在文本框中敲回車的時候,表單提交。因為在.net中一個Page只有一個form表單。所以也就有一個Sumbit事件。

當UseSubmitBehavior的屬性是True的時候,表單的提交就會觸發此事件。

先后順序是先觸發點擊事件,然后觸發 UseSubmitBehavior為True的button的click時間。

當然如果有多個button就會默認的觸發第一個button事件。

為了解決該問題將UseSubmitBehavior改為false即可。(多個button時,UseSubmitBehavior全改為false。)

解決方法二:

(當你要用button的OnClientClick彈出確認窗口的時候,如果UseSubmitBehavior為false,不論你選擇什么都不會執行服務器的button的OnClick代碼,這時候就需要用解決方法二)

解決方法來自孟子E章:

private   void   Page_Load(object   sender,   System.EventArgs   e)   
{   
  TextBox1.Attributes.Add("onkeydown","if(event.keyCode==13)   {this.blur();return   false}");   
}   
private   void   Button1_Click(object   sender,   System.EventArgs   e)   
{   
  Response.Write("Button");   
}   
private   void   TextBox1_TextChanged(object   sender,   System.EventArgs   e)   
{Response.Write(TextBox1.Text);   
}

 (確保TextBox1的AutoPostBack屬性為True,實際使用中發現,只要設置為true,不需要上面的代碼也可以解決問題。)

 另外,可以設置 客戶端ID.focus()  or  設置tabIndex 屬性。

 


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 AutoPoster 的頭像
    AutoPoster

    互聯網 - 大數據

    AutoPoster 發表在 痞客邦 留言(0) 人氣()