1

我正在創建一個UserControl,其中包含一個ListView。我宣佈它如下,我已經嘗試其他方式與ParseChildrenPersistChildren屬性。如何從模板中的自動生成控件停止Visual Studio 2010?

[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 
{ 

它裏面,我有以下代碼設置的ListView

[Browsable(false), 
    DefaultValue(null), 
    PersistenceMode(PersistenceMode.InnerProperty), 
    TemplateContainer(typeof(ListViewDataItem), BindingDirection.TwoWay)] 
public virtual ITemplate ItemTemplate 
{ 
    get { return _lvChild.ItemTemplate; } 
    set { _lvChild.ItemTemplate = value; } 
} 

ItemTemplace現在對控制消費者該模板內,我將使用

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

在Visual Studio 2008這導致設計器文件不會自動生成HiddenField ShippingAddressID,但是一旦轉到Visual Studio 2010,它就會執行此操作。我怎樣才能阻止它在2010年自動生成它?

+0

我所做的一些事情似乎讓問題消失了,我不知道它是哪個東西。 –

回答

0

如果你不需要在code-behind的任何地方引用它,你不能只刪除「runat = server」?

+0

我不得不引用它,如果我切換它,.NET將如何知道它是服務器端控件? –

+0

那麼它不會。這就是爲什麼我問你是否需要引用它。如果設計器文件中沒有條目,那麼如何引用它在服務器端?你是手動聲明的嗎? –

+0

我正在使用FindControl和我自己的實現與類似的想法。 –

相關問題