c# - How to auto-refresh a div of webpage - Stack Overflow

I am parsing xml of rss feed and displaying it. I want to refresh a div which shows recent news. I am u

I am parsing xml of rss feed and displaying it. I want to refresh a div which shows recent news. I am using update panel and asp timer to do this(please refer the below code) but for each refresh entire page is getting refreshed.

Can anyone let me know where i am going wrong

protected void Page_Load(object sender, EventArgs e)
{

    string loggedinuser = "experiment4";
    Read_Rss(loggedinuser);
    var rssFeed = from el in doc.Elements("rss").Elements("channel").Elements("item")
                  orderby datetime(el.Element("pubDate").Value) descending

                  select new
                  {
                      Title = el.Element("title").Value,
                      Link = el.Element("link").Value,
                      Description = replace_other(el.Element("description").Value),
                      // Image = regex(el.Element("description").Value),
                      Image =
                      el.Element(media + "thumbnail") != null ?
                      el.Element(media + "thumbnail").Attribute("url").Value :
                      el.Element(media + "content") != null ?
                      el.Element(media + "content").Attribute("url").Value :
                      regex(el.Element("description").Value) != null ?
                      regex(el.Element("description").Value) : null,
                      PubDate = datetime(el.Element("pubDate").Value),
                  };
    lvFeed.DataSource = rssFeed;
    lvFeed.DataBind();
    Data_Load(sender, e);
}   


protected void Data_Load()
{
    //  try
    //{
    string loggedinuser = "experiment4";
    Read_Rss(loggedinuser);
    var rssFeed = from el in doc.Elements("rss").Elements("channel").Elements("item")
                  orderby datetime(el.Element("pubDate").Value) descending

                  select new
                  {
                      Title = el.Element("title").Value,

                  };
    newFeed.DataSource = rssFeed;
    newFeed.DataBind();

}



  <div id="leftcolumn">
            <asp:ListView runat="server" ID="lvFeed">
                <LayoutTemplate>
                    <ul>
                        <li runat="server" id="itemPlaceHolder"><a></li>
                    </ul>
                </LayoutTemplate>
                <ItemTemplate>
                    <div class="box">
                        <strong>
                            <%#Eval("Title") %>
                            : </strong>
                        <br />
                        <br />
                        <img src="<%#Eval("Image")%>" alt="" id="photo" class="photo" onload="imageload(this,0,100)"
                            onerror="onImgError(this,0)"></img>
                        <%#Eval("Description")%><a href="<%#Eval("Link") %>">readmore</a><br />
                        <br />
                        <br />
                    </div>
                </ItemTemplate>
            </asp:ListView>
        </div>

        <div id='rightcolumn'> 
            <div id='side'>
                <asp:ScriptManager ID="ScriptManager1" runat="server">
                </asp:ScriptManager>
                <asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" runat="server">
                    <ContentTemplate>
                        <asp:Timer ID="Timer2" OnTick="Data_Load" runat="server" Interval="300">
                        </asp:Timer>
                        <asp:ListView runat="server" ID="newFeed">
                            <LayoutTemplate>
                                <ul>
                                    <li runat="server" id="itemPlaceHolder"><a></li>
                                </ul>
                            </LayoutTemplate>
                            <ItemTemplate>
                            <div class="small">
                                <%#Eval("Title") %>
                                :<a href="<%#Eval("Link") %>">readmore</a><br />

                                </div>
                                <br />
                            </ItemTemplate>
                        </asp:ListView>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </div>
        </div>
    </div>
</div>

I am parsing xml of rss feed and displaying it. I want to refresh a div which shows recent news. I am using update panel and asp timer to do this(please refer the below code) but for each refresh entire page is getting refreshed.

Can anyone let me know where i am going wrong

protected void Page_Load(object sender, EventArgs e)
{

    string loggedinuser = "experiment4";
    Read_Rss(loggedinuser);
    var rssFeed = from el in doc.Elements("rss").Elements("channel").Elements("item")
                  orderby datetime(el.Element("pubDate").Value) descending

                  select new
                  {
                      Title = el.Element("title").Value,
                      Link = el.Element("link").Value,
                      Description = replace_other(el.Element("description").Value),
                      // Image = regex(el.Element("description").Value),
                      Image =
                      el.Element(media + "thumbnail") != null ?
                      el.Element(media + "thumbnail").Attribute("url").Value :
                      el.Element(media + "content") != null ?
                      el.Element(media + "content").Attribute("url").Value :
                      regex(el.Element("description").Value) != null ?
                      regex(el.Element("description").Value) : null,
                      PubDate = datetime(el.Element("pubDate").Value),
                  };
    lvFeed.DataSource = rssFeed;
    lvFeed.DataBind();
    Data_Load(sender, e);
}   


protected void Data_Load()
{
    //  try
    //{
    string loggedinuser = "experiment4";
    Read_Rss(loggedinuser);
    var rssFeed = from el in doc.Elements("rss").Elements("channel").Elements("item")
                  orderby datetime(el.Element("pubDate").Value) descending

                  select new
                  {
                      Title = el.Element("title").Value,

                  };
    newFeed.DataSource = rssFeed;
    newFeed.DataBind();

}



  <div id="leftcolumn">
            <asp:ListView runat="server" ID="lvFeed">
                <LayoutTemplate>
                    <ul>
                        <li runat="server" id="itemPlaceHolder"><a></li>
                    </ul>
                </LayoutTemplate>
                <ItemTemplate>
                    <div class="box">
                        <strong>
                            <%#Eval("Title") %>
                            : </strong>
                        <br />
                        <br />
                        <img src="<%#Eval("Image")%>" alt="" id="photo" class="photo" onload="imageload(this,0,100)"
                            onerror="onImgError(this,0)"></img>
                        <%#Eval("Description")%><a href="<%#Eval("Link") %>">readmore</a><br />
                        <br />
                        <br />
                    </div>
                </ItemTemplate>
            </asp:ListView>
        </div>

        <div id='rightcolumn'> 
            <div id='side'>
                <asp:ScriptManager ID="ScriptManager1" runat="server">
                </asp:ScriptManager>
                <asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" runat="server">
                    <ContentTemplate>
                        <asp:Timer ID="Timer2" OnTick="Data_Load" runat="server" Interval="300">
                        </asp:Timer>
                        <asp:ListView runat="server" ID="newFeed">
                            <LayoutTemplate>
                                <ul>
                                    <li runat="server" id="itemPlaceHolder"><a></li>
                                </ul>
                            </LayoutTemplate>
                            <ItemTemplate>
                            <div class="small">
                                <%#Eval("Title") %>
                                :<a href="<%#Eval("Link") %>">readmore</a><br />

                                </div>
                                <br />
                            </ItemTemplate>
                        </asp:ListView>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </div>
        </div>
    </div>
</div>
Share asked Apr 2, 2013 at 23:47 Praneeth PuligundlaPraneeth Puligundla 4155 silver badges22 bronze badges 1
  • try removing the update panel and assigning Data_Load to a button OnClick to see if your code is working correctly or not. – th1rdey3 Commented Apr 3, 2013 at 6:00
Add a ment  | 

4 Answers 4

Reset to default 3

If I were you I would set a trigger on a hidden button which is located in the update panel and then call button.click() using javascript timer on that trigger, I've done this before, weird trick that works.

Trigger example: http://www.asp/web-forms/tutorials/aspnet-ajax/understanding-asp-net-ajax-updatepanel-triggers

<asp:ScriptManager ID="ScriptManager1" runat="server" />
 <asp:Timer runat="server" id="Timer1" interval="900000" ontick="Timer1_Tick" />
 <asp:UpdatePanel runat="server" id="TimedPanel" updatemode="Conditional">
    <Triggers>
        <asp:AsyncPostBackTrigger controlid="Timer1" eventname="Tick" />
    </Triggers>
    <ContentTemplate>
        <div>
             //your div content goes here
        </div>
    </ContentTemplate>
 </asp:UpdatePanel>

the interval attribute of timer control is in milisecond... so for 15 minutes interval would be 900000 ((15*60) * 1000) -> 1 sec=1000 milisecond

now, create an event in codebehind which will be called after interval period

protected void Timer1_Tick(object sender, EventArgs e)
{
    //update div content
}

If you want to refresh an update panel, you can call Update on it after setting its UpdateMode to conditional. Actually, check out this example it's pretty good:

http://msdn.microsoft./en-us/library/system.web.ui.updatepanel.update.aspx

Check the below example, done using jquery.

<html xmlns="http://www.w3/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="http://code.jquery./jquery-1.9.1.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    $("#changePanel").click(function() {
    var data = "foobar";
    $("#panel").hide().html(data).fadeIn('fast');
    })
  });
    </script>
    <style type="text/css">
    div {
    padding: 1em;
    background-color: #00c000;
     }

    input {
    padding: .25em 1em;
     }​
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="panel">test data</div>
    <input id="changePanel" value="Change Panel" type="button"/>​

    </form>
</body>
</html>

or you could use something like jQuery Auto refresh div messing up

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744914471a4600750.html

相关推荐

  • c# - How to auto-refresh a div of webpage - Stack Overflow

    I am parsing xml of rss feed and displaying it. I want to refresh a div which shows recent news. I am u

    1天前
    30

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信