C# 如何阻止Visual Studio 2010在模板中自动生成控件?

C# 如何阻止Visual Studio 2010在模板中自动生成控件?,c#,asp.net,visual-studio-2010,visual-studio-2008,asp.net-4.0,C#,Asp.net,Visual Studio 2010,Visual Studio 2008,Asp.net 4.0,我正在创建一个用户控件,其中包含一个列表视图。我声明如下,我用ParseChildren和PersistChildren属性尝试了其他方法 [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal), AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostin

我正在创建一个
用户控件
,其中包含一个
列表视图
。我声明如下,我用
ParseChildren
PersistChildren
属性尝试了其他方法

[AspNetHostingPermission(SecurityAction.InheritanceDemand, 
    Level=AspNetHostingPermissionLevel.Minimal),
AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal),
Designer(typeof(ListViewItem)),
ParseChildren(false), PersistChildren(false)]
public partial class CustomListView : System.Web.UI.UserControl, IPaneControl, INamingContainer
{
在它里面,我有以下代码来设置
列表视图的
ItemTemplace

[Browsable(false),
    DefaultValue(null),
    PersistenceMode(PersistenceMode.InnerProperty),
    TemplateContainer(typeof(ListViewDataItem), BindingDirection.TwoWay)]
public virtual ITemplate ItemTemplate
{
    get { return _lvChild.ItemTemplate; }
    set { _lvChild.ItemTemplate = value; }
}
现在,在模板中,我将使用该控件的使用者

<ItemTemplate><asp:HiddenField runat="server" ID="ShippingAddressID" Value='<%#Eval("AddressID") %>' /></ItemTemplate>


在VisualStudio2008中,这导致设计器文件不会自动生成
HiddenField
ShippingAddressID,但在转到VisualStudio2010时会自动生成。我怎样才能阻止它在2010年自动生成它呢?

如果你不需要在代码中的任何地方引用它,你就不能删除“runat=server”吗?

我必须引用它,如果我切换它,.Net怎么知道它是服务器端控件呢?当然不会。这就是为什么我问你是否需要参考它。如果设计器文件中没有条目,如何引用it服务器端?你是手动声明的吗?我正在使用FindControl和我自己的实现,有着类似的想法。我所做的事情似乎解决了这个问题,我不知道它是什么。