我在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" />
答案 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
}
}