0

それは私だけですか、それとも双方向データバインディングに関する資料が大幅に不足していますか?

とにかく、私の問題は、FormView.InsertItemTemplate内に配置されるUserControlを作成したことです。

私の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ランタイムコンパイルエラー@行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が2回宣言されています

なぜこれなのか誰か知っていますか?さらに重要なことに、これを修正または回避するにはどうすればよいですか?

よろしくお願いしますナンドゥン

4

1 に答える 1

0

テキスト ボックスの ID が必須ではなく、コード ビハインドで使用していない場合は、安全に削除でき、asp.net によって自動生成されます。

于 2012-05-10T07:28:07.713 に答える