【发布时间】:2013-10-19 18:47:24
【问题描述】:
我的 ASP.NET 项目中的 Web 表单上有一些按钮。最终用户必须像使用计算器一样与这些按钮进行交互。我的问题是,每当最终用户单击按钮时,页面都会因为回发而刷新。我试图像这样关闭回发:
if (!Page.IsPostBack)
{
protected void btn7_Click(object sender, EventArgs e)
{
const string stringNumber7 = "7";
var text = txtNumber.Text;
text += stringNumber7;
txtNumber.Text = text;
CheckMaxLength();
}
}
但是点击事件不会触发。我尝试过使用图像、图像按钮、图像映射。我也无法从这些对象中得到我想要的结果。我希望能够停止回发,但仍然让我的按钮单击事件像 Windows 应用程序中那样触发。我看到一些论坛使用更新面板进行讨论。我不确定如何正确实现更新面板。我不熟悉 AJAX 控件。
有谁知道我可以如何使用更新面板来完成我想要做的事情?或者如何停止回发并仍然触发服务器端代码?
【问题讨论】:
-
回发意味着客户端回发到服务器,所以如果你想处理服务器上的按钮点击事件,你必须这样做。如果您想使用 javascript 处理客户端的点击事件,请使用 html-input type=button 并处理
onclick事件。 -
如果不想回发,可以使用 JavaScript 或 jQuery。
-
我认为您有一个基本的误解...在单击按钮后调用服务器端代码的唯一方法是通过 PostBack。这是根本。如果您想在屏幕上保留值,则需要将它们放在保持状态的控件中,或者(如果没有),您需要重建这些服务器端。
-
@andleer 感谢您的评论。您能否详细说明“维持状态的控制”?您还指的是哪个控件?
标签: c# asp.net ajax click postback