我想在C#中为文本框创建一个“Click”事件(因为没有)。
所以,就这样
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";
}
但不是我创建的事件,因为编译器没有将我的新事件识别为 一个真实的事件或我无法弄清楚的事情。
我根据“Refreshing an UpdatePanel Control with an External Button”的步骤8添加了button1_click事件。
此选项中未显示文本框的点击事件:
所以我的问题是有没有办法在System.Web.UI.WebControls.TextBox
类中添加此事件,或者在上述选项中显示此事件?
这样我就可以在更新面板的触发器中包含文本框的单击事件。
答案 0 :(得分:0)
如果您尝试为TextBox
创建Click事件,则每次用户单击您的文本框时,您都会触发回发到服务器(甚至评估您是否需要在处理事件)。效率非常低 - 您应该使用JavaScript处理浏览器中的点击,然后使用客户端逻辑触发UpdatePanel。
这使您可以在需要时触发对服务器的调用,但在不需要时可以避免调用。如果您有服务器端事件处理程序,则每次用户单击TextBox
时,您的代码都会回发到服务器(重新加载页面)。
您可以阅读此链接(和其他人)关于在客户端使用__doPostBack()
来触发UpdatePanel
执行回发。
http://encosia.com/easily-refresh-an-updatepanel-using-javascript/