Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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# 更新面板、回发和失败的更新_C#_Asp.net_Updatepanel - Fatal编程技术网

C# 更新面板、回发和失败的更新

C# 更新面板、回发和失败的更新,c#,asp.net,updatepanel,C#,Asp.net,Updatepanel,我觉得这里很像塞恩菲尔德人。更新面板是怎么回事 我已经读了两天的帖子、博客和书籍 我有一个JS计时器,用于10秒的测试。我希望它刷新更新面板。更新面板包含一个文本。更新面板的on load重新填充文本。它不起作用 javascript: __doPostBack("<%=litL2Sched.ClientID %>"); \u doPostBack(“”); 这导致了一个完整的回发,我的页面闪烁,然后我的眼睛充满了悲伤的泪水 __doPostBack("<%=btnL2Re

我觉得这里很像塞恩菲尔德人。更新面板是怎么回事

我已经读了两天的帖子、博客和书籍

我有一个JS计时器,用于10秒的测试。我希望它刷新更新面板。更新面板包含一个文本。更新面板的on load重新填充文本。它不起作用

javascript:

__doPostBack("<%=litL2Sched.ClientID %>");
\u doPostBack(“”);
这导致了一个完整的回发,我的页面闪烁,然后我的眼睛充满了悲伤的泪水

__doPostBack("<%=btnL2Refresh.ClientID %>");
\u doPostBack(“”);
这几乎没有任何作用。有人告诉我这样行得通。当我点击按钮时,它会按预期工作,但不会随计时器一起下降

页面标记:

    <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);
}
var-oUpdatePanels=setInterval(函数(){postBacks()},10000);
函数回发(){
__doPostBack(“,null);
}

我有一些其他的东西正在测试中,它们不会影响这个。为了澄清这一点,我有5个模块是这样布置的,但我只想在我理解后让其中一个模块工作并进行优化。

您需要传递UpdatePanel的ClientID

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

您的javascript需要如下所示:

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

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

函数回发(){
__doPostBack(“,null);
}
var-outpdatepanels=setInterval(回发,1000);

尝试传递null作为uu doPostBackshill的第二个参数进行完全回发。我应该补充一点,我在那里有很长一段时间了,用“”作为我的第二个参数。你试过按钮了吗?文字控件没有任何事件,因此无论如何都不应该导致回发。这是有道理的,但是更新面板不会在计时器上刷新。正如今天早些时候我玩游戏时的旁注,我将按钮的visible属性设置为false,回发转义到整个页面。与其使用本机JS计时器并尝试自己调用回发,为什么不在标记中使用
ASP
计时器呢。即使您可以让您的方法正常工作,但对于未来的开发人员来说,使用和维护它将比只使用标记中的一行更困难。
null
都会回发整个页面。呸,再次回发完整的页面。奇怪的是,我找到了我得到的页面源代码:
作为更新面板的翻译和
\u doPostBack(“#MainContent\u line2Sched”,”)作为翻译后的javascript。这很奇怪,我用上面的代码创建了一个空网站,它运行得很好。时间以异步方式更新。您如何确定它正在执行“完整回发”?
$(document).ready()
中每次都会出现一个警报,页面会闪烁。您的代码中一定有其他内容。上面的代码在一个空白网站上运行良好。您是否可以发布任何可能相关的附加代码?
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");
}
<script type="text/javascript">
    function postBacks() {
        __doPostBack("<%=line2Sched.ClientID %>", null);
    }

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