1
我有一個自定義的基本頁類:asp.net自定義basepage具有中繼器的公共屬性,阻止設計器爲該中繼器添加受保護的變量?
//MobileFunnelPage.cs
public abstract class MobileFunnelPage : Page
{
public virtual Repeater myRepeater{get;set;}
}
然後,我有一個繼承該頁面的頁面:
//ConcreteMobileFunnelPage.aspx.cs
public class ConcreteMobileFunnelPage: MobileFunnelPage
{
protected override void Page_Load(object sender, EventArgs e){
myRepeater.DataSource = new string[]{"Error 1","Error 2","Error 3"};
myRepeater.DataBind();
}
}
用下面的標記:
//ConcreteMobileFunnelPage.aspx
<%@ Page Title="ConcreteMobilePage!" Language="C#" AutoEventWireup="true" CodeBehind="ConcreteMobileFunnelPage.aspx.cs" inherits="MyNamespace.ConcreteMobileFunnelPage" %>
...
<asp:Repeater ID="myRepeater" runat="server" Visible="false">
<HeaderTemplate>
<div>
<span>
</HeaderTemplate>
<ItemTemplate><li><%# Container.DataItem %></li></ItemTemplate>
<FooterTemplate>
</span>
</div>
</FooterTemplate>
</asp:Repeater>
的asp.net設計者不斷地爲designer.cs文件中的myRepeater重新生成和添加受保護的變量:
//ConcreteMobilFunnelPage.aspx.designer.cs
protected global::System.Web.UI.WebControls.Repeater myRepeater;
這會導致一個問題,因爲它不覆蓋繼承的myRepeater屬性,而是隱藏它。有沒有辦法讓設計師兌現myRepeater繼承的財產?
這就是我最終做的事情......(刪除二傳手和所有。) – Jon