Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#带有计时器页面的updatepanel#u加载_C#_Asp.net_Ajax_Asp.net Ajax - Fatal编程技术网

c#带有计时器页面的updatepanel#u加载

c#带有计时器页面的updatepanel#u加载,c#,asp.net,ajax,asp.net-ajax,C#,Asp.net,Ajax,Asp.net Ajax,我现在正在试验一些AJAX。我有一个自定义控件,它出现在我的母版页上,其中有一个更新面板和一个计时器。计时器启动,面板更新,一切都很好。除了有些操作我不希望每次刷新时都执行。似乎整个页面生命周期都是在每次刷新时发生的。我想设置一些变量,并在刷新时保留它们的值。有没有办法让它只执行timer_tick调用中的内容?UpdatePanels总是强制刷新整个页面。如果您只希望处理页面的某一部分(并且是固定大小),那么可以尝试使用iframe 或者,如果要保存变量,可以将它们置于ViewState或Se

我现在正在试验一些AJAX。我有一个自定义控件,它出现在我的母版页上,其中有一个更新面板和一个计时器。计时器启动,面板更新,一切都很好。除了有些操作我不希望每次刷新时都执行。似乎整个页面生命周期都是在每次刷新时发生的。我想设置一些变量,并在刷新时保留它们的值。有没有办法让它只执行timer_tick调用中的内容?

UpdatePanels总是强制刷新整个页面。如果您只希望处理页面的某一部分(并且是固定大小),那么可以尝试使用iframe


或者,如果要保存变量,可以将它们置于ViewState或SessionState中,以便它们在回发之间持久化更新窗格始终强制刷新整个页面。如果您只希望处理页面的某一部分(并且是固定大小),那么可以尝试使用iframe


或者,如果要保存变量,可以将其置于ViewState或SessionState中,以便在回发之间保持这些变量

您可以查看页面加载事件中的请求[“\u EVENTTARGET”],以查看是什么控件导致回发。如果是定时器控制,跳出该功能

假设您的计时器名为“刷新计时器”:


您可以查看页面加载事件中的请求[“\uu EVENTTARGET”],以查看是什么控件导致了回发。如果是定时器控制,跳出该功能

假设您的计时器名为“刷新计时器”:


不确定AJAX.Net回发邮件是什么样子的,但我通常通过检查回发邮件来保护我的其他控件和内容

protected void Page_Load(object sender, EventArgs e)
{

     // if its a post back then my controls should already be setup... 
     if (!Page.IsPostBack)
     {
          InitControlData();
     }    
}
然后它就应该通过你的事件处理了

protected void timer_tick(object sender, EventArgs e)
{
    // Do my Ajaxy work~
}

不确定AJAX.Net回发邮件是什么样子的,但我通常通过检查回发邮件来保护我的其他控件和内容

protected void Page_Load(object sender, EventArgs e)
{

     // if its a post back then my controls should already be setup... 
     if (!Page.IsPostBack)
     {
          InitControlData();
     }    
}
然后它就应该通过你的事件处理了

protected void timer_tick(object sender, EventArgs e)
{
    // Do my Ajaxy work~
}

这在UpdatePanels中是不可能的。。。整个页面将贯穿整个生命周期。正如其他人提到的,您可以通过使用IsPostBack或ScriptManager的IsInAsyncPostBack来限制处理,但最终这对于复杂页面来说并不是一个很好的解决方案

但是,您可以使用页面方法在页面中只执行一个静态方法,但是您必须让Javascript自己调用并更新UI。以下是一些例子:


    • 这在UpdatePanels中是不可能的。。。整个页面将贯穿整个生命周期。正如其他人提到的,您可以通过使用IsPostBack或ScriptManager的IsInAsyncPostBack来限制处理,但最终这对于复杂页面来说并不是一个很好的解决方案

      但是,您可以使用页面方法在页面中只执行一个静态方法,但是您必须让Javascript自己调用并更新UI。以下是一些例子:


      计时器刻度代码在做什么?计时器刻度代码在做什么?