C# 为textbox和AJAX更新面板控件创建事件
我想为C#中的文本框创建一个“单击”事件(因为没有) 那么,这边C# 为textbox和AJAX更新面板控件创建事件,c#,asp.net,.net,events,C#,Asp.net,.net,Events,我想为C#中的文本框创建一个“单击”事件(因为没有) 那么,这边 protected void Page_Load(object sender, EventArgs e) { if (Request["__EVENTARGUMENT"] != null && Request["__EVENTARGUMENT"] == "txt1OnClick") { txt1_Click(); } txt1.Attributes.Add("onc
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";
}
但不是我创建的事件,因为编译器没有将我的新事件标识为
一个真实的事件或者一些我无法理解的事情
我根据“”的步骤8添加了button1_click事件
此选项中不显示文本框的单击事件:
所以我的问题是,有没有办法在System.Web.UI.WebControls.TextBox
类中添加此事件,或者在上述选项中显示此事件
这样我就可以在更新面板的触发器中包含文本框的单击事件 如果您尝试为
文本框
创建一个单击事件,每次用户单击您的文本框时,您都会触发回发到服务器(甚至是评估您是否需要在处理事件时执行某些操作)。这是非常低效的-您应该使用JavaScript在浏览器中处理单击,然后使用客户端逻辑触发UpdatePanel
这允许您在需要时触发对服务器的调用,但在不需要时避免调用。如果您有服务器端事件处理程序,则每次用户单击文本框
时,您的代码都会发回服务器(重新加载页面)
您可以阅读此链接(以及其他链接),了解如何在客户端使用\uu doPostBack()
触发更新面板来执行回发
您所说的“使用JavaScript,然后使用客户端逻辑触发UpdatePanel”是什么意思??我需要从客户端引用我的更新面板,可以吗??对不起,我的问题不相关,但我想殿下不会介意…@AbdulMajid是的,你可以这么做。我用一个链接更新了答案,详情请参见。