如何在按下按钮时阻止我的ASP.NET页面重新加载,同时仍然启用按钮事件?

时间:2016-04-29 00:27:04

标签: c# asp.net webforms postback

目前我已经有几个按钮在按下时更新标签,但是我想保留其他所有内容 - 其他一些网页控件和一个表格 - 就像它们一样。我试图通过这样做来强制执行:

                TableCell addButtonCell = new TableCell();
                Button addButton = new Button();
                addButton.Text = "Add";
                addButton.OnClientClick = "return false;"; // < this
                addButton.Click += new EventHandler(addButton_Click);
                addButtonCell.Controls.Add(addButton);

但是现在我的实际按钮事件不会触发。

1 个答案:

答案 0 :(得分:0)

<asp:Button runat="server" ID="Button1" Text="Add" OnClientClick="click(); return false;"  />

<script>
function click(){
    alert("Hey, it's not a postback!");
}
</script>

上面的示例显示了如何与客户端上的按钮进行交互。这里的关键是添加return false;语句,以便不发布回发。因此,在这种情况下不会发生页面重新加载。

根据您的要求,您需要了解 - 是否应在客户端或服务器端处理按钮单击?点击按钮后你想要实现的是什么?

如果您希望在服务器端进行处理而不在每次点击时重新加载页面,则可以尝试UpdatePanel控制,这样您就可以执行部分​​页面更新。

<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
        <asp:Button runat="server" ID="Button1" Text="Add" OnClick="addButton_Click" />
    </ContentTemplate>
</asp:UpdatePanel>

有关UpdatePanel控件的更多详细信息,请参阅此MSDN文章。

https://msdn.microsoft.com/en-us/library/bb386454.aspx