Hejsan! gridview.Columns.Add() Tackar, nu har jag fixat den biten. Kan du inte vända på problematiken. Skapa alla kolumner i markup. Dvs alla kolumner som kan tänkas visas inklusive en templated kolumn med ditt sammanslagna värde. Genom att skapa kolumnerna i markup har du massor av kontroll vad gäller layout. Sen hookar du upp DataBinding eventet i vilket du kollar vilka kolumner som inte finns med i listan och döljer dem... Vet inte om du kan dölja en column dock kom jag precis på. Kanske måste använda ItemDataBound och dölja cellen istället. Eller så skapar du alla kolumnerna i markup och innan du databinder så plockar du bort de kolumner som inte skall användas. Ja... Det finns massor av vis att göra det på. Men jag ville mest belysa idén att vända på frågan, dvs inte skapa de kolumner som skall visas utan dölja/plocka bort de som INTE skall visas... Hängde du med? Jag valde att lösa det i DatabasLagret. Att göra det i vyn känns ju fel då det hör hemma i db-lagret.Google is your friend... NOT
Jag har försökt i en timme nu att hitta en vettig sample, tutorial, artikel etc som passar mig men icke.
Jag har ett DataSet som jag hätar från databas lagret, från denna skapar jag en DataView för att enkelt kunna paga / sortera min GridView
Nu till problemet, out of the box kommer alla fält med rakt upp och ned från datasetet.
Användarna kan völja från "settings" vilka kolumner som ska vissas i denna GridView
Min lilla "ResultGridHelper"-klass låter mig veta vilka kolumner användaren valt samt vad dessa ska heta i headern. (kolumnen "packnr" ska skrivas ut som "Förpackningsnummer" i headern).
Vad jag dock inte hittar är hur man i runtime ställer in en GridView's columner... :/
Nån som har en bra artikel om detta?Sv: Google is your friend... NOT
finns i dokumentationen: http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.columns.aspx den här hittade jag på google ;) http://www.netnewsgroups.net/group/microsoft.public.dotnet.framework.aspnet/topic24237.aspxSv:Google is your friend... NOT
Men har ett annat problem..
Vissa värden som ska presenteras i GridViewen i olika kolumner kommer från samma kolumn in DB
Databas exempel på tre rader från en sådan tabell i DB
indexType = "Typ1" indexValue="ex1"
indexType = "Typ2" indexValue="ex2"
indexType = "Typ3" indexVakue="ex3"
För dessa värden räcker det inte att bara databinda mot ett Column.DataTextField="indexValue" utan jag måste vid
bindings evenetent kolla om Columnen är av ett visst namn och då ska jag istället för att databinda direkt mot DataTextfield istället välja själv enligt nedanstående
om row["indexType"] = "typ2" och Columnnamn = "Typ2" då sätta värdet för indexValue, annars värdet = string.empty
Hänger ni med? med en repeater är det rätt lätt då man för varje rad som databindas kan trigga ItemDataBind, hur gör man med GridView?Sv: Google is your friend... NOT
Sv:Google is your friend... NOT