ListView.InsertItemTemplate DropDownList Bind

01/04/2009 - 19:25 von Lutz Elßner | Report spam
Ich habe ein NET 3.5 ListView und im InsertItemTemplate eine DropDownList:

<asp:DropDownList ID="ddlregion" runat="server" SelectedValue='<%# Bind("region") %>'
DataSourceID="dsregion" DataTextField="region" DataValueField="region" CssClass="ddl">
</asp:DropDownList>

Schon beim Aufruf der Seite kommt der Fehler:

System.InvalidOperationException: Datenbindungsmethoden wie Eval(), XPath() und Bind() können
nur im Kontext eines datengebundenen Steuerelements verwendet werden.

Die Fehlermeldung klingt so als würde Bind im Insert gar nicht gehen.
Bind für Textboxen und Checkboxen funktioniert jedoch im InsertItemTemplate.

Im EditItemTemplate funktioniert auch die oben deklarierte DropDownList.

Nun ist mir klar, dass bei Insert kein sinnvoller Wert zum anzeigen da ist, aber in der DataSource
ist auch ein Item mit Leer-String vorhanden, das dann bei Edit auch ausgewàhlt wird.

Wenn ich nun den SelectedValue Bindungsausdruck weg lasse, wird die Seite angezeigt und ich kann
in der DropDownList bei Insert etwas auswàhlen. Das wird aber nicht gespeichert. Gespeichert
wird der Leer-String, der bei Edit auch angezeigt wird.

Ich klicke also nach Insert immer noch auf Edit, um die DropDownList zu àndern.

Wie funktioniert eine DropDownList im InsertItemTemplate?
Im Edit geht es, da kann doch nicht so viel verkehrt sein?

Lutz
 

Lesen sie die antworten

#1 Thomas Bandt
02/04/2009 - 11:32 | Warnen spam
Lutz Elßner schrieb:
Wenn ich nun den SelectedValue Bindungsausdruck weg lasse, wird die
Seite angezeigt und ich kann
in der DropDownList bei Insert etwas auswàhlen. Das wird aber nicht
gespeichert. Gespeichert
wird der Leer-String, der bei Edit auch angezeigt wird.

Ich klicke also nach Insert immer noch auf Edit, um die DropDownList zu
àndern.

Wie funktioniert eine DropDownList im InsertItemTemplate?
Im Edit geht es, da kann doch nicht so viel verkehrt sein?



Ich verstehe nicht, warum du dich immer noch mit diesem
Schrott rumquàlst, so ziemlich jeder hier hat dir ja schon
den Link von Karsten zum Thema unter die Nase gerieben.

Ich weiß die Lösung auch nicht, aber ich weiß wie ich sie
bekommen würde, wenn ich wollte: erzeuge dir mit dem Designer
für irgendeine Datenquelle doch einfach einen Dummy mit allen
Templates und schaue in den Code, dann siehst du wie es
funktioniert.

Gruß, Thomas [MVP ASP/ASP.NET]
http://www.69grad.de - Die ASP.NET-Profis aus Nürnberg
http://blog.thomasbandt.de - Privates Blog

Ähnliche fragen