2014-10-08 146 views
1

我在一個Web表單項目中使用Repeater的網頁;這是網頁上的代碼:無法在靜態環境中訪問非靜態字段「Repeater」

<asp:Repeater ID="Repeater1" runat="server"> 
    <ItemTemplate> 
     <div class="Event"> 
      <div class=""> 
       <h3><a href="<%# DataBinder.Eval(Container.DataItem, "Url") %>"><%# DataBinder.Eval(Container.DataItem, "Name") %></a></h3> 
       <span><%# DataBinder.Eval(Container.DataItem, "Location") %>. <%# DataBinder.Eval(Container.DataItem, "DateDisplay") %></span> 
       &nbsp; 
      </div> 

     </div> 
    </ItemTemplate> 
</asp:Repeater> 

和這裏的隱藏代碼:

namespace TestWebForms 
{ 
    public partial class EventSearchResults : System.Web.UI.Page 
    { 
     public string searchTerms { get; set; } 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      var query = HttpContext.Current.Request.QueryString; 

      var searchTerms = String.IsNullOrEmpty(query["q"]) ? String.Empty : query["q"]; 

      ArrayList values = new ArrayList(); 

      values.Add(new Event() 
      { 
       Name = "Class of 1715 300th Reunion", 
       Location = "Cambridge, MA", 
       DateDisplay = "May 20th 2015", 
       Url = "#" 
      }); 
      values.Add(new Event() 
      { 
       Name = "Symposium on Proper Cat Petting Techniques", 
       Location = "Boston, MA", 
       DateDisplay = "December 25th 2014", 
       Url = "#" 
      }); 
      values.Add(new Event() 
      { 
       Name = "Puppies Everywhere!!!", 
       Location = "Cambridge, MA", 
       DateDisplay = "November 12th 2014", 
       Url = "#" 
      }); 

      Repeater1.DataSource = values; 
      Repeater1.DataBind(); 

     } 
    } 
} 

它工作得很好。

然後我複製並粘貼到一個新項目的文件(長話短說,但基本上我需要的文件存在項目2,但我無法查看項目2中的網站,所以我創建了頁面I需要在項目1中進行查看,然後在完成時將其複製到項目2)

文件字面上完全相同(除網頁的命名空間外)。但是中繼器不能在項目2中工作。在代碼隱藏中,Repeater1有一個紅色下劃線,並且它表示「無法在靜態上下文中訪問非靜態字段」Repeater「。

我該如何解決這個問題,爲什麼地球上它可以在一個項目中工作,而不是在另一個項目中工作?

+0

想不出爲什麼會造成這個錯誤,但你有一個EventSearchResults.aspx.designer.cs文件,如果是的話,你也改變了命名空間在那裏? – Rhumborl 2014-10-08 19:12:17

+0

不,我沒有那個文件 – 2014-10-08 19:13:05

回答

0

我想通了,當我將它複製到一個新文件時,創建的新文件使用「CodeFile」而不是「CodeBehind」。它更改爲代碼隱藏固定的問題

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="EventSearchResults.aspx.cs" Inherits="WebAssets_Templates_EventSearchResults" %> 
+0

你可以通過點擊「打勾」來「接受」你自己的答案。這從未解決的問題池中迴避了這個問題。 – 2015-06-02 09:41:58

相關問題