0

我想为 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 Control,这很好用

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

但不是我创建的事件,因为编译器不会将我的新事件识别为真实事件或我无法弄清楚的事情。

我根据“使用外部按钮刷新 UpdatePanel 控件”的第 8 步添加了 button1_click 事件。

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

文本框

所以我的问题是有没有办法在System.Web.UI.WebControls.TextBox类中添加这个事件,或者让这个事件在上述选项中可见?

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

4

1 回答 1

0

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

这使您可以在需要时触发对服务器的调用,但在不需要时避免调用。如果您有服务器端事件处理程序,您的代码将在用户每次单击TextBox.

您可以阅读有关__doPostBack()在客户端使用来触发UpdatePanel执行回发的此链接(和其他链接)。

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

于 2012-10-22T04:12:17.667 回答