簡體   English   中英

如何停止自動按鈕點擊F5和頁面刷新?

[英]How to stop auto button click on F5 and page refresh?

在我的ascx控件中,我有一個按鈕,我在其中調用一個事件處理程序,並從該事件處理程序調用一個在演示者中的方法

在ascx頁面上

   public event EventHandler<EventArgs> Add;

   protected void btnAdd_Click(object sender, EventArgs e)
    {
        if (Add != null)
             Add(sender, e);

    }

在主持人

  AddListView.Add += delegate(object sender, EventArgs e)//AddListView is a Interface
  {
    Add();

  };

當我點擊btn添加其工作正常和記錄正在添加,但當我刷新瀏覽器頁面時,通過F5和鼠標再次點擊btnAdd正在着火。 我試着用

   // Page refresh F5 btn press
    protected override void LoadViewState(object savedState)
    {
        object[] AllStates = (object[])savedState;
        base.LoadViewState(AllStates[0]);
        _refreshState = bool.Parse(AllStates[1].ToString());
        _isRefresh = _refreshState == bool.Parse(Session["__ISREFRESH"].ToString());
    }

    // Page refresh F5 btn press
    protected override object SaveViewState()
    {
        Session["__ISREFRESH"] = _refreshState;
        object[] AllStates = new object[2];
        AllStates[0] = base.SaveViewState();
        AllStates[1] = !(_refreshState);
        return AllStates;
    }

然后它工作正常,但刷新后我無法再點擊btnAdd,點擊btnAdd,再次我正在刷新然后它的工作正常..

我在其他控件上調用此控件,並且在點擊項目頁面時我有一個Datalist將再次回發。

如何停止自動按鈕單擊F5或頁面刷新而不單擊btnAdd。

請有人幫幫我..

檢查此鏈接檢測瀏覽器刷新避免在ASP.NET中觸發事件。 看這里

希望這可以幫助。

有時一個簡單的Response.Redirect很好。 它基本上將初始POST轉換為不同的GET請求。 只要您保留所有POSTed信息,這就可以工作。 否則它們將不再可用。

protected void Button1_Click(object sender, EventArgs e)
{
    // we are in Default.aspx here!
    Response.Redirect("Default.aspx");
}

這並不總是有效,確實有缺點。 而且,這種方式並不太復雜。 使用Routing Framework可能會讓您獲得更順暢的URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM