[英]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.