2015-01-20 30 views
0

我有一个非常简单的asp.net webform页面与listview,我不能使listView刷新回发,只有当我提出一个新的请求。我猜listView从视图状态或其他东西获取它的内容。我在Page_Load事件中绑定了数据,并且我也尝试了Page_Init事件。没有不同。无法获取ListView刷新回发

我可能已经通过了前50个谷歌搜索结果,似乎没有任何工作。

如何强制listview刷新回发?

Default.aspx的

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="RSS_Reader.Default" %> 
<%@ Import namespace="RSS_Reader.Extensions" %> 

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>RSS Reader</title> 
    <link rel="shortcut icon" href="favicon.ico" /> 
    <link href="css/main.css" rel="stylesheet" /> 
    <script src="js/jquery-1.11.2.min.js"></script> 
    <script type="text/javascript" src="js/App.js"></script> 
</head> 
<body> 
<form id="form1" runat="server"> 
    <div> 
     <div id="horizontal-menu"> 
      <ul id="horizontal-menu-list"> 
       <li id="add-feed">Add Feed 
        <ul> 
         <li> 
          <input type="text" placeholder="Feed URL" /><button class="button green">Add</button> 
         </li> 
        </ul> 
       </li> 
       <li>Add Group</li> 
       <li>Settings</li> 
      </ul> 
      <div id="global-search"> 
       <input type="text" id="search" placeholder="Search" /> 
      </div> 
      <div style="clear: both"></div> 
     </div> 
     <div id="feeds"> 
      <div id="feed-filter"> 
       <asp:TextBox ID="feedUrl" runat="server" placeholder="Feed URL"></asp:TextBox> 
       <asp:Button ID="ThisIsAUniqueNameForAButton" runat="server" CssClass="button green" Text="Subscribe" OnClick="subscribeToFeed" /> 
      </div> 

      <div id="feed-wrapper"> 

       <asp:ListView ID="FeedCollection" runat="server"> 
        <ItemTemplate> 
         <div><div class="feed-collection-icon"></div><asp:Label runat="server" ID="listFeedTitle" Text='<%# Bind("Title") %>'></asp:Label></div> 
        </ItemTemplate> 
       </asp:ListView> 

      </div> 

     </div> 
     <div id="content"> 

      <div id="feed-title">Version2 - IT For Professionelle</div> 
      <div id="nodes"> 

       <asp:GridView ID="nodesGridview" OnSorting="nodesGridview_Sorting" runat="server" OnSortCommand="SortGrid" AllowSorting="True" AutoGenerateColumns="false"> 
        <EmptyDataTemplate> 
         No feed. 
        </EmptyDataTemplate> 
        <Columns> 
         <asp:TemplateField HeaderText="Title" SortExpression="title"> 
          <ItemTemplate> 
           <div class="node-icon"></div> <%# XPath("title") %> 
          </ItemTemplate> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="Description" SortExpression="description"> 
          <ItemTemplate> 
           <%# XPath("description").ToString().Truncate(50) %> 
          </ItemTemplate> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="Date" SortExpression="pubDate"> 
          <ItemTemplate> 
           <%# XPath("pubDate").ToString().toDate() %> 
          </ItemTemplate> 
         </asp:TemplateField> 
        </Columns> 
       </asp:GridView> 

      </div> 
      <div id="reading-pane"> 
       <asp:Label ID="readingPaneTitle" runat="server" Text="Label"></asp:Label> 

      </div> 

     </div> 
     <div id="footer"> 
      Copyright &copy; 2014 - Mads O. Nielsen 
     </div> 
    </div> 
</form> 

Default.aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Xml; 
using System.Diagnostics; 
using System.Data.Entity; 
using System.Data; 
using System.IO; 

using RSS_Reader.FeedCollection; 
using RSS_Reader.FeedItem; 


namespace RSS_Reader 
{ 
    public partial class Default : System.Web.UI.Page 
    { 
    private XmlDataSource feedItems; 
    private FeedReader feedReader; 

    protected void Page_Init(object sender, EventArgs e) 
    { 
     Debug.WriteLine("Page_Init"); 

     if (!IsPostBack) 
     { 

     } 
    } 

    protected void Page_Load(object sender, EventArgs e) 
    { 

     RSS_Reader.Model db = new RSS_Reader.Model(); 

     //var feedQuery = from emp in db.Feeds select emp; 
     //List<Feeds> empList = feedQuery.ToList(); 

     FeedCollection.DataSource = db.Feeds.ToList(); 

     feedReader = new FeedReader(); 
     feedReader.load("http://www.version2.dk/it-nyheder/rss"); 

     feedItems = new XmlDataSource(); 
     feedItems.EnableCaching = false; 
     feedItems.ID = "feedItems"; 
     feedItems.Data = feedReader.feed.OuterXml; 
     feedItems.XPath = "rss/channel/item"; 

     nodesGridview.Width = new Unit(100.00, UnitType.Percentage); 
     nodesGridview.DataSource = feedItems; 

     FeedCollection.DataBind(); 
     nodesGridview.DataBind(); 

    } 

    protected void subscribeToFeed(object sender, EventArgs e) 
    { 
     FeedManager feedManager = new FeedManager(); 
     feedManager.subscribe(feedUrl.Text); 
    } 

    protected void nodesGridview_Sorting(object sender, GridViewSortEventArgs e) 
    { 
     Debug.WriteLine("Sorting"); 

    } 

    } 
} 

回答

0

,如果它不能刷新,因为它保存到ViewState中可以EnableViewState属性设置为False的ListView控件然后服务器刷新它在所有回发

+0

我不想禁用视图状态,那不是正确的解决方案。 – user1359448 2015-01-20 21:07:56