Page_Load运行Button_Click

时间:2016-03-31 10:40:07

标签: c# asp.net sharepoint

我在SharePoint 2013中有一个Web部件,可以从excel添加新项目。 Web部件包含上传控件,按钮和文本框。我从上传控件中选择文档,然后单击按钮在SP中加载项目,如果成功,我会在文本框中看到“Successfull”或以其他方式看到“Not successfull”。

我的问题:如果我用web-part刷新页面,textbox仍然包含旧文本,但我想在每次刷新后看到它为空。

我尝试使用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" />

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以实现一个特殊的代码块来检测浏览器刷新为

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
        }
}