我在一个Web表单项目中有一个网页,我使用了一个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>
</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中查看它,然后在完成后将其复制到项目2中
文件完全相同(除了网页的命名空间)。但是转发器在项目2中没有工作。在代码隐藏中,Repeater1有一个红色下划线,它表示&#34;无法访问非静态字段&#34; Repeater&#34;在静态环境中。&#34;
我如何解决这个问题,为什么它会在一个项目中起作用而在另一个项目中起作用呢?
答案 0 :(得分:0)
我想通了,当我把它复制到一个新文件时,创建的新文件是使用&#34; CodeFile&#34;而不是&#34; CodeBehind&#34;。将其更改为CodeBehind修复了问题
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="EventSearchResults.aspx.cs" Inherits="WebAssets_Templates_EventSearchResults" %>