簡體   English   中英

Page_Load運行Button_Click

[英]Page_Load run Button_Click

我在SharePoint 2013中有一個Web部件,其中添加了excel中的新項目。 該Web部件包含上載控件,按鈕和文本框。 我從上傳控件中選擇文檔,然后單擊按鈕以在SP中加載項目,如果成功,則在文本框中看到“成功”或以其他方式看到“未成功”。

我的問題:如果我用Web部件刷新頁面,則文本框仍然包含舊文本,但是我希望每次刷新后都看不到它。

我嘗試使用Page.IsPostBack,但我認為我沒有正確使用它。

protected void Page_Load(object sender, EventArgs e)
{
   if(!Page.IsPostBack)
    textbox1.Text = "";
}

protected void btn3_Click(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
        return;
    if(!upload.HasFile)
    {
        textbox1.Text += "You didn't choose an Excel file";
        return;
    }
       ...
}

<asp:Button ID="btn3" runat="server" OnClick="btn3_Click" Text="Add Items" />

在這種情況下,您可以實現一個特殊的代碼塊以將瀏覽器刷新檢測為

private bool refreshState;
private bool isRefresh;

protected override void LoadViewState(object savedState)
{
    object[] AllStates = (object[])savedState;
    base.LoadViewState(AllStates[0]);
    refreshState = bool.Parse(AllStates[1].ToString());
    if (Session["ISREFRESH"] != null && Session["ISREFRESH"] != "")
        isRefresh = (refreshState == (bool)Session["ISREFRESH"]);
}

protected override object SaveViewState()
{
    Session["ISREFRESH"] = refreshState;
    object[] AllStates = new object[3];
    AllStates[0] = base.SaveViewState();
    AllStates[1] = !(refreshState);
    return AllStates;
}

在按鈕中單擊即可

protected void btn3_Click(object sender, EventArgs e)
{
    if (isRefresh == false)
        {
            Insert Code here
        }
}

暫無
暫無

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

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