public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) // If page loads for first time
{
Session["update"] = Server.UrlEncode(System.DateTime.Now.ToString()); // Assign the Session["update"] with unique value
//=============== Page load code =========================
//============== End of Page load code ===================
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (Session["update"].ToString() == ViewState["update"].ToString()) // If page not Refreshed
{
//=============== On click event code =========================
Label1.Text = TextBox1.Text;
//lblDisplayAddedName.Text = txtName.Text;
//=============== End of On click event code ==================
// After the event/ method, again update the session
Session["update"] = Server.UrlEncode(System.DateTime.Now.ToString());
}
else // If Page Refreshed
{
// Do nothing
}
}
protected override void OnPreRender(EventArgs e)
{
ViewState["update"] = Session["update"];
}
}
这不适用于高分辨率渐变背景。
答案 0 :(得分:2)
考虑将您的按钮和标签包装在updatepanel
控件中,该控件使用AJAX刷新其内容。
页面的其余部分不会重新加载,操作也不会影响浏览器导航。
请参阅this page了解updatepanel
控件的工作原理。
答案 1 :(得分:1)
由于您正在处理服务器端的按钮单击事件,因此必须有回发来处理它。
如果您不希望发回帖子,请将事件处理更改为“客户端点击”
答案 2 :(得分:0)
// Heinzi代码为我工作只是在OnPreRender事件中做了一个小改动,当它没有回发时分配ViewsState值
protected override void OnPreRender(EventArgs e)
{
if (!IsPostBack)
{
ViewState["update"] = Session["update"];
}
}