01. marts 2007 - 16:01Der er
6 kommentarer og 1 løsning
databind til dropdownlist i detailsview
Jeg har et detailsview hvor jeg har lagt en dropdownboks ind - til den dropdownboks vil jeg gerne databinde fra et strongly typed dataset jeg har lavet via min tableadapter.
Jeg kan godt finde min dropdownboks; DropDownList PANametypeList = (DropDownList)dvMisc.FindControl("PAName");
Men jeg kan ikke få lagt indhold ind - har forsgt fx; PartnerTableAdapter partnerAdapter = new PartnerTableAdapter(); PANametypeList.DataSource = partnerAdapter.GetPartners(); PANametypeList.DataBind();
men uden held (fejl: Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control.)
Du kan jo bruge en SqlDataSource også bruge PANametypeList.DataSourceID = "DinDataSource";
Ellers kan du bruge et DataSet. Fx: DataSet ds = DinAdaptor
Du skal osse huske at bruge PANametypeList.DataTextField = "Text" PANametypeList.DataValueField = "ID" For at den ved hvad den skal bruge som text og value.
DataTextField og DataValueField var udeladt for at gøre det mere overskueligt - de er med i min kode :-)
Min kode virker fint hvis jeg indsætter i en almindelig dropdownlist - problemet opstår først idet dropdownlisten er inde i mit detailsview (vha en itemtemplate). Får umiddelbart samme fejl med dit forslag.
Nok fordi du binder din dropdownlist i page_load. Den bliver fyret når du så posterback med fx en knap. Du skal sætte en if(!Page.IsPostBack) ind i din page_load så den ikke gør det.
Havde allerede en ispostback så det var ikke det - jeg har binded til min liste på en anden måde og problemet er løst helt nu... men læg et svar og få lidt point for forsøget.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.