それは私だけですか、それとも双方向データバインディングに関する資料が大幅に不足していますか?
とにかく、私の問題は、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回宣言されています
なぜこれなのか誰か知っていますか?さらに重要なことに、これを修正または回避するにはどうすればよいですか?
よろしくお願いしますナンドゥン