更新面板,回发和失败的更新

时间:2013-06-25 16:41:06

标签: c# asp.net updatepanel

我在这里感觉很Seinfeldian。与UpdatePanels有什么关系?

我已经阅读了2天的帖子,博客和书籍。

我有一个JS计时器用于测试目的,在10秒内进行民意调查。我希望它刷新更新面板。更新面板包含文字。加载时更新面板重新填充文字。它不起作用。

javascript:

__doPostBack("<%=litL2Sched.ClientID %>");

这导致完整的回发,我的页面闪烁,然后我的眼睛充满了悲伤的泪水。

__doPostBack("<%=btnL2Refresh.ClientID %>");

这几乎没有。我被告知这会奏效。当我单击按钮时,它按预期工作,但不会使用计时器。

页面标记:

    <asp:UpdatePanel ID="line2Sched" runat="server" UpdateMode="Conditional" OnLoad="litL2Sched_ResetTable"  >
        <ContentTemplate>

            <asp:Literal runat="server" ID="litL2Sched" ></asp:Literal>
            <asp:Button runat="server" ID="btnL2Refresh" /> 
        </ContentTemplate>
    </asp:UpdatePanel>

我尝试使用和不使用触发器,我的脚本管理器允许部分。

我真正想做的就是在我的低级更新面板上强制回发。

编辑: 区间代码

var oUpdatePanels = setInterval(function () { postBacks() }, 10000);

function postBacks(){
    __doPostBack("<%=btnL2Refresh.ClientID %>", null);
}

我还有一些其他的东西正在测试中,这些东西并没有影响到这一点。为了澄清,我有5个这样的模块,但我只是希望在我理解之后让工作和优化。

1 个答案:

答案 0 :(得分:0)

您需要传递UpdatePanel的ClientID

window.setInterval(function() {
        __doPostBack("<%=line2Sched.ClientID%>", '');
    }, 3000);

<强> ASPX

<asp:UpdatePanel ID="line2Sched" runat="server" UpdateMode="Conditional" OnLoad="litL2Sched_ResetTable" >
    <ContentTemplate>
        <asp:Literal runat="server" ID="litL2Sched" ></asp:Literal>
        <asp:Button runat="server" ID="btnL2Refresh"/> 
    </ContentTemplate>
</asp:UpdatePanel>

<script type="text/javascript">
function postBacks() {
    __doPostBack("<%=line2Sched.ClientID %>", null);
}

var oUpdatePanels = setInterval(postBacks, 1000);
</script>

代码背后:

protected void Page_Load(object sender, EventArgs e)
{

}

protected void litL2Sched_ResetTable(object sender, EventArgs e)
{
    litL2Sched.Text = DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt");
}

修改

您的javascript需要如下所示:

<script type="text/javascript">
    function postBacks() {
        __doPostBack("<%=line2Sched.ClientID %>", null);
    }

    var oUpdatePanels = setInterval(postBacks, 1000);
</script>