0

我在这里感觉很宋飞。与 UpdatePanel 有什么关系?

我已经阅读了 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 个像这样布置的模块,但我只想让一个工作并在我理解后进行优化。

4

1 回答 1

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>
于 2013-06-25T16:57:41.233 回答