Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为textbox和AJAX更新面板控件创建事件_C#_Asp.net_.net_Events - Fatal编程技术网

C# 为textbox和AJAX更新面板控件创建事件

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

我想为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";
}
但不是我创建的事件,因为编译器没有将我的新事件标识为 一个真实的事件或者一些我无法理解的事情

我根据“”的步骤8添加了button1_click事件

此选项中不显示文本框的单击事件:

所以我的问题是,有没有办法在
System.Web.UI.WebControls.TextBox
类中添加此事件,或者在上述选项中显示此事件


这样我就可以在更新面板的触发器中包含文本框的单击事件

如果您尝试为
文本框
创建一个单击事件,每次用户单击您的文本框时,您都会触发回发到服务器(甚至是评估您是否需要在处理事件时执行某些操作)。这是非常低效的-您应该使用JavaScript在浏览器中处理单击,然后使用客户端逻辑触发UpdatePanel

这允许您在需要时触发对服务器的调用,但在不需要时避免调用。如果您有服务器端事件处理程序,则每次用户单击
文本框
时,您的代码都会发回服务器(重新加载页面)

您可以阅读此链接(以及其他链接),了解如何在客户端使用
\uu doPostBack()
触发
更新面板来执行回发


您所说的“使用JavaScript,然后使用客户端逻辑触发UpdatePanel”是什么意思??我需要从客户端引用我的更新面板,可以吗??对不起,我的问题不相关,但我想殿下不会介意…@AbdulMajid是的,你可以这么做。我用一个链接更新了答案,详情请参见。