相关文章推荐
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

I wanted to update data inside update panel without postback.

I made following code on aspx:

<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="30">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="upPanel" runat="server">
        <ContentTemplate>
            <asp:Label ID="lblCount" runat="server"></asp:Label>
        </ContentTemplate>
    </asp:UpdatePanel>

for updating the label on every half a minute, i written following code on pageload:

 protected void Page_Load(object sender, EventArgs e)
        lblCount.Text = DateTime.Now.ToShortTimeString();

But its not updating the label even though i given

AsyncPostBackTimeout="30"

in script manager.

Is anything i am mistaking??

I want to update label inside the updatepanel without postback on certain time interval.

Edit:

 <asp:UpdatePanel ID="upPanel" runat="server">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
        </Triggers>
        <ContentTemplate>
            <asp:Label ID="lblCount" runat="server"></asp:Label>
        </ContentTemplate>.
    </asp:UpdatePanel>
<script runat="server" type="text/c#">
    protected void Timer1_Tick(object sender, EventArgs e)
        lblCount.Text = "Panel refreshed at: " + DateTime.Now.ToLongTimeString();
</script>
<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="30">
    </asp:ScriptManager>
    <asp:Timer runat="server" id="Timer1" Interval="30000" OnTick="Timer1_Tick"></asp:Timer>
    <asp:UpdatePanel ID="upPanel" runat="server">
         <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
        </Triggers>
        <ContentTemplate>
            <asp:Label ID="lblCount" runat="server" Text="Page not refreshed yet."></asp:Label>
        </ContentTemplate>
    </asp:UpdatePanel>
</form>

As @Nipun Ambastha suggested add the AsyncPostBackTrigger trigger.

Without AsyncPostBackTrigger, the timer has to be placed inside the UpdatePanel:

protected void Timer1_Tick(object sender, EventArgs e)
        Label1.Text = "Panel refreshed at: " +
DateTime.Now.ToLongTimeString();
<form id="form2" runat="server">
    <asp:ScriptManager runat="server" ID="ScriptManager2">
    </asp:ScriptManager>
    <asp:UpdatePanel runat="server" ID="UpdatePanel1">
        <ContentTemplate>
            <asp:Timer runat="server" ID="Timer2" Interval="30000" OnTick="Timer1_Tick"></asp:Timer>
            <asp:Label runat="server" Text="Page not refreshed yet." ID="Label1">
            </asp:Label>
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:Label runat="server" Text="Label" ID="Label3"></asp:Label>
</form>
                "asynchronous postback event is not a known element"  you get this error if you place Triggers inside the ContentTemplate
– Mihai Hantea
                Mar 10, 2014 at 5:39

You are actually not using Async Trigger, for updating a panel you will need to declare Async Trigger.

Please check this url http://msdn.microsoft.com/en-us/library/system.web.ui.asyncpostbacktrigger(v=vs.110).aspx

More Detailed http://www.asp.net/ajax/documentation/live/overview/UpdatePanelOverview.aspx

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.

 
推荐文章