Archief - object uit listbox opvragen in VB.net

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Cedric

Legacy Member
In winforms(C#) heb ik een combobox die bestaat uit ‘Bread’ objecten. Elk Bread object bestaat uit andere objecten en properties.
Als ik in die listbox een Bread wil opvragen doe ik een eenvoudige cast => (Bread)cbBread.SelectedItem
Nu moet ik hetzelfde doen, maar dan in een web omgeving en in VB.net
Ik dacht altijd dat een casting met CType werd gedaan. Nu doe ik het volgende:

Dim bread As New Bread
bread = CType(ddBread.SelectedItem, Bread)

maar de foutmelding is de volgende

Value of type 'System.Web.UI.WebControls.ListItem' cannot be converted to 'DomainLayer.Bread'.

Deze foutmelding slat echter niet op mijn casting maar gewoon op ddBread.SelectedItem (CType(ddBread.SelectedItem, Bread)) => ListItem dus
Enig idee hoe ik de casting toch kan uitvoeren?

Mvg

Cedric

Obliv`

Legacy Member
Dit gaat zo maar niet in een webomgeving. DropDownList <> ComboBox.

Bij een dropdownlist kan je wel een DataValueField en DataTextField opgeven maar dat is het. Je kan achteraf adhv van één van de fields wel je gegevens terug gaan ophalen uit de viewstate of database.

Bijvoorbeeld in page_load
{
if (!this.Page.IsPostBack)
{
MyObject[] myObjectArray = MyObjectWebService.GetAll();

this.MyDropDownList.DataValueField = "MyValueField";
this.MyDropDownList.DataTextField = "MyTextField";
this.MyDropDownList.DataSource = myObjectArray;
this.MyDropDownList.DataBind();

this.Page.ViewState.Add("MyObjectArray", myObjectArray);
}
}


Dan in selectedIndexChanged
{
MyObject myObject = ((MyObject[])(this.Page.ViewState["MyObjectArray"])).Find(Hier een predicate voor uw object te zoeken ofzo)
}

Met een beetje puzzelen zul je er zo wel komen.

Cedric

Legacy Member
Obliv` zei:
Dit gaat zo maar niet in een webomgeving. DropDownList <> ComboBox.

Bij een dropdownlist kan je wel een DataValueField en DataTextField opgeven maar dat is het. Je kan achteraf adhv van één van de fields wel je gegevens terug gaan ophalen uit de viewstate of database.

Bijvoorbeeld in page_load
{
if (!this.Page.IsPostBack)
{
MyObject[] myObjectArray = MyObjectWebService.GetAll();

this.MyDropDownList.DataValueField = "MyValueField";
this.MyDropDownList.DataTextField = "MyTextField";
this.MyDropDownList.DataSource = myObjectArray;
this.MyDropDownList.DataBind();

this.Page.ViewState.Add("MyObjectArray", myObjectArray);
}
}


Dan in selectedIndexChanged
{
MyObject myObject = ((MyObject[])(this.Page.ViewState["MyObjectArray"])).Find(Hier een predicate voor uw object te zoeken ofzo)
}

Met een beetje puzzelen zul je er zo wel komen.

Dat zou idd moeten lukken maar ik snap de werkwijze niet. Dit is echt klooien

bedankt allesinds
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan