c# - 如何自动刷新网页的div

标签 c# javascript asp.net jquery asp.net-ajax

我正在解析 rss feed 的 xml 并显示它。我想刷新一个显示最近新闻的 div。我正在使用更新面板和 asp 计时器来执行此操作(请引用下面的代码) 但每次刷新整个页面都会刷新。

谁能告诉我哪里出了问题

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>

最佳答案

如果我是你,我会在位于更新面板中的隐藏按钮上设置一个触发器,然后在该触发器上使用 javascript 计时器调用button.click(),我以前已经这样做过,奇怪的技巧有效。

触发示例: http://www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-asp-net-ajax-updatepanel-triggers

关于c# - 如何自动刷新网页的div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15776474/

相关文章:

c# - 在 C# 中实现 DISPID_VALUE 并从 C++ 中调用它

c# - 通用抽象基类 "know"中的方法可以是其实例的最派生类吗?

javascript - 创建一个具有随机值的数组

c# - SSRS 报告中的超链接表达式将参数传递给 ASP.NET 应用程序

c# - 需要建议 : Switching from Linq to SQL to Entity Framework

asp.net - VS 2015 Preview 缺少 "ASP.NET 5 Web Application"项目类型?

c# - 在 If 语句中评估 Bool 错误

c# - 如果使用 XML 前缀,则 XSLT 转换只会导致页面标题 h1::Documents 以 html 格式打印

javascript - 在渲染 React 组件之前等待 AJAX 调用完成

javascript - Nivo slider 有时无法在第一次正常工作