每次在PageLoad

时间:2016-08-26 05:44:36

标签: c# asp.net lifecycle

我在下面有一个按钮:

 <asp:Button ID="btnApprove" runat="server" Text="Approve" CssClass="button" OnClick="btnApprove_Click" />

服务器端此按钮的事件处理程序是:

 protected void btnApprove_Click(object sender, EventArgs e)
    {
        Page.ClientScript.RegisterStartupScript(Page.GetType(), "key", "alert('Button Approve Clicked')", true);      
    }

只需从服务器端点击按钮即可获得警报。

我的问题是,一旦我点击了批准按钮,现在当我再次加载或刷新我的页面时,每次都会执行btnApprove_Click事件。

我在同一个表单上有很多其他按钮,但没有一个显示这种奇怪的行为。我试图将此按钮更改为HTML但仍然是相同的行为。

任何人都可以帮助我摆脱它。提前谢谢。

3 个答案:

答案 0 :(得分:3)

您应该在页面加载时使用IsPostBack以防止每次按下按钮时页面加载。您可以每次Page_Load检查。

示例代码

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
         // First Time Load When User Come 
    }
    else
    {
       // Every Time Load When Any click button in page
    }

答案 1 :(得分:1)

尝试添加OnClientClick="return false;"

<asp:Button ID="btnApprove" runat="server" Text="Approve" CssClass="button" OnClick="btnApprove_Click" OnClientClick="return false;"/>

答案 2 :(得分:0)

如何使用RegisterOnSubmitStatement呢?

Page.ClientScript.RegisterOnSubmitStatement(Page.GetType(), "key", "alert('Button Approve Clicked')");