簡體   English   中英

為文本框和AJAX更新面板控件創建事件

[英]Creating an event for a textbox and AJAX Update Panel Control

我想為C#中的文本框創建“點擊”事件(因為沒有)。

所以這樣

protected void Page_Load(object sender, EventArgs e)
{
    if (Request["__EVENTARGUMENT"] != null && Request["__EVENTARGUMENT"] == "txt1OnClick")
    {
        txt1_Click();
    }

    txt1.Attributes.Add("onclick", this.Page.ClientScript.GetPostBackEventReference(txt1, "txt1OnClick"));
}

private void txt1_Click()
{
    ImageMap1.ImageUrl = "guide/1.jpg";
}

然后,我想加載圖像而不重新加載頁面。

因此,我使用了AJAX UpdatePanel控件,並且在

protected void Button1_Click(object sender, EventArgs e)
{
    ImageMap1.ImageUrl = "guide/1.jpg";
}

但是,與我創建的事件無關,因為編譯器無法將我的新事件識別為真實事件或無法確定的事件。

我根據“ 使用外部按鈕刷新UpdatePanel控件 ”的步驟8添加了button1_click事件。

文本框的單擊事件未顯示在此選項中:

文本框

所以我的問題是,有什么辦法可以在System.Web.UI.WebControls.TextBox類中添加此事件,還是可以在上述選項中使此事件可見?

這樣我就可以在更新面板的“觸發器”中包含文本框的click事件。

如果您嘗試為TextBox創建Click事件,則每次用戶單擊您的文本框時,都會觸發回發到服務器(甚至評估是否需要在處理事件時做一些事情)。 這是非常低效的-您應該使用JavaScript處理瀏覽器中的點擊,然后使用客戶端邏輯觸發UpdatePanel。

這使您可以在需要時觸發對服務器的調用,但在不需要時避免調用。 如果您具有服務器端事件處理程序,則每次用戶單擊TextBox時,您的代碼都會回發到服務器(重新加載頁面)。

您可以閱讀有關在客戶端使用__doPostBack()觸發UpdatePanel執行回發的鏈接(及其他鏈接)。

http://encosia.com/easily-refresh-an-updatepanel-using-javascript/

暫無
暫無

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

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