2012-05-10 20 views
0

僅僅是我還是在雙向數據綁定中存在嚴重的材料短缺?使用支持雙向綁定的ITemplate字段創建DataBound UserControl,即<%# Bind() %>

無論如何,我的問題是,我創建了一個UserControl被放置在一個FormView.InsertItemTemplate中。

我的UserControl本身有一個ITemplate字段。基本上這個想法是,在我的表單中,我有5個控件,這些控件對所有窗體都是通用的,還有另一個可以根據窗體進行自定義的控件。

我的標記看起來是這樣的:

<irt:FormView ID="FormViewInsertEvent" DefaultMode="Insert" runat="server" 
    DataKeyNames="EVENT_ID" DataSourceID="DataSourceEvents"> 
    <InsertItemTemplate> 
     <irt:EventControl ID="EventControlInsertEvent" runat="server" DataSourceID="DataSourceDataModemEvents"     
      EventDate='<%# Bind("EVENT_DATE") %>' 
      EventTypes='<%# Bind("EVENT_TYPE") %>'> 
      <CustomContent> 
       Additional Property: 
       <asp:TextBox ID="AdditionalTextBox" runat="server" Text='<%# Bind("ADDITIONAL_PROPERTY") %>' />        
      </CustomContent> 
     </irt:EventControl> 
    </InsertItemTemplate> 
</irt:FormView> 

我覺得理論上一切是正確的。但我得到一個ASP.NET運行時編譯錯誤@line 4637:

Compiler Error Message: CS0128: A local variable named 'AdditionalTextBox' is already defined in this scope 

Source Error: 

Line 4635:   #line default 
Line 4636:   #line hidden 
Line 4637:   System.Web.UI.WebControls.TextBox AdditionalTextBox; 
Line 4638:    
Line 4639:   #line 378 "C:\MyProj\trunk\Releases\Source\FilePathSensored.aspx" 

這行代碼是這樣的:

Line 4620:   [System.Diagnostics.DebuggerNonUserCodeAttribute()] 
Line 4621:   public System.Collections.Specialized.IOrderedDictionary @__ExtractValues__control84(System.Web.UI.Control @__container) { 

... 
Line 4628:    #line default 
Line 4629:    #line hidden 
Line 4630:    System.Web.UI.WebControls.TextBox AdditionalTextBox; 
Line 4631:    
Line 4632:    #line 378 "C:\MyProj\trunk\Releases\Source\FilePathSensored.aspx" 
Line 4633:    AdditionalTextBox = ((System.Web.UI.WebControls.TextBox)(@__container.FindControl("AdditionalTextBox"))); 
Line 4634:    
Line 4635:    #line default 
Line 4636:    #line hidden 
Line 4637:    System.Web.UI.WebControls.TextBox AdditionalTextBox; 
Line 4638:    
Line 4639:    #line 378 "C:\MyProj\trunk\Releases\Source\FilePathSensored.aspx" 
Line 4640:    AdditionalTextBox = ((System.Web.UI.WebControls.TextBox)(@__container.FindControl("AdditionalTextBox"))); 
Line 4641:    

正如你所看到的,對於我的aspx生成的代碼AdditionalTextBox聲明兩次

有誰知道這是爲什麼?更重要的是,我如何解決這個問題或者解決這個問題?

在此先感謝 Nandun

回答

0

如果文本框的ID不強制你,你是不是在使用它的代碼隱藏那麼你就可以安全刪除它,asp.net將自動生成它。

+0

是的,但問題是我必須使用<%# Bind() %>。當您使用2路綁定時,該ID是必需的。否則會導致錯誤。 – Nandun

相關問題