Est-ce juste moi ou est il y a une grave pénurie de matériel sur databinding 2 voies?Création d'un DataBound UserControl avec un champ ITemplate qui prend en charge à savoir la liaison 2 voies <%# Bind() %>
de toute façon, mon problème est, je l'ai créé un UserControl être placé à l'intérieur d'un FormView.InsertItemTemplate.
Mon UserControl lui-même a un champ ITemplate. Fondamentalement, l'idée est, sous ma forme que j'ai 5 contrôles qui sont communs à toutes les formes, et une autre section qui peut être personnalisable en fonction de la forme.
Mon Markup ressemble à ceci:
<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>
je me sens comme théoriquement tout est correct. Mais je reçois une erreur de compilation runtime 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"
Le code à cette ligne est la suivante:
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:
Comme vous pouvez le voir, le code généré pour mon ASPX a déclaré AdditionalTextBox deux fois
est-ce que quelqu'un sait pourquoi est-ce? plus important encore, comment puis-je résoudre ce problème ou contourner cela?
Merci à l'avance Nandun
est vrai, mais le problème est que je dois utiliser <%# Bind() %>. Lorsque vous utilisez une liaison bidirectionnelle, l'ID est requis. sinon cela conduit à une erreur. – Nandun