sitter och exprimenterar med gridviewn, och tycker att det kan vara bra att anpassa kolumner efter olika vyer.
så, när jag exempelvis klickar på "edit" så dyker en ny kolumn upp i gridviewn, och det är väl bra.. men, när jag sedan är klar med uppdateringen så vill jag ju att samma kolumn skall plockas bort igen, men jag hittar ingen metod för detta.
skapar en ny kolumn:
när edit-mod påbörjas
Dim col As New BoundField
col.HeaderText = "hoho"
col.DataField = "userid"
GridView1.Columns.Add(col)
plockar bort samma kolumn (eller någon annan valfri...)...
?????
eftersom jag inte kan ange något id när jag skapar den så vet jag heller inte hur jag ska hitta den. (på det sätter som jag tänker...)
Du har helt rätt!
Jag ville visa data ur huvud- och relaterad tabell (men ändå kunna uppdatera), och tänkt lägga till en kolumn för det, som sedan kunde anpassas beroende på om jag ville editera eller inte.
Nåja, jag jag gjorde istället så att jag skapade en gridview baserad endast på huvudtabell, så jag fick insert/updatestatements på köpet.
Sen skrev jag om selectfrågan så den även hämtade relaterad data ifrån den andra tabellen (men behöll resten som det var).
Efter det så dolde jag fk-kolumnen och fältet med relaterad data, skapade sedan en ny template-kolumn och i items-mallen "band" labels till data i den relaterade kolumnen, och i edit-templaten la jag in en dropdown, som jag band till fk-fältet för den relaterade datan. -dropdownen hämtar sin data med en egen sqlsource.
På det viset får jag -utan att behöva skriva en rad kod- en gridview som visar data ifrån flera tabeller, samtidigt som jag kan uppdatera (och lägga till ny data), utan att behöva se fk-kolumnernas id-nummer.
Vid visningsläget(items) så ser det helt "normalt" ut (då visas bara en label), i edit- och insertläget dyker en dropdown upp, så jag inte kan mata in ett felaktigt värde(samtidigt som jag oxå ser värdet, och inte bara dess nyckel).
Vet inte om alla andra kanske redan gör så, men jag blev glad när jag kom på det!
265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e