2014-10-08 3 views
1

하나의 웹 양식 프로젝트에서 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에서는 사이트를 볼 수 없으므로 페이지 1을 만들었습니다. 프로젝트 1을보고 나서 그것을 끝내면 프로젝트 2로 복사)

파일은 문자 그대로 웹 페이지의 네임 스페이스와 완전히 동일합니다. 그러나 리피터는 프로젝트 2에서 작동하지 않습니다. 코드 숨김에서 Repeater1에는 빨간색 밑줄이 표시되며 "정적 컨텍스트에서"비 정적 필드 "Repeater"에 액세스 할 수 없습니다. "라는 메시지가 표시됩니다.

이 문제를 어떻게 해결할 수 있습니까? 왜 한 프로젝트에서만 작동하지만 다른 프로젝트에서는 작동하지 않습니까?

+0

캔트 생각하는 문제는 코드 숨김에 고정 변경,하지만 당신은 EventSearchResults.aspx.designer.cs 파일을 가지고 그렇다면, 당신은 또한 거기에 네임 스페이스를 변경? – Rhumborl

+0

아니요, 그 파일이 없습니다 –

답변

0

새로운 파일로 복사 할 때 작성된 새 파일은 "CodeBehind"대신 "CodeFile"을 사용하고 있습니다. 그것은 그 오류가 발생하는 이유

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

"틱"을 클릭하여 자신의 대답을 수락 할 수 있습니다. 이것은 답이없는 질문의 풀에서 질문을 reomved. –

관련 문제