Jag har en gridview på en sida, denna har 5 kolumner i grundutförande, kolumn 2 och 3 är textboxar med ifyllt värde från ett databundet objekt. Ovanför gridden finns en droplista med olika alternativ, vid val i listan sker autopostback och jag presenterar x antal extra kolumner med beräknade värden, dessa trycks in efter originalkolumn 2 och efter originalkolumn 3, detta fungerar utmärkt, jag loopar igenom och räknar ut hur många kolumner så att det stämmer.
det blir typ
från: kol 1 | kol 2 | kol 3 | kol 4 | kol 5
till: kol 1 | kol 2 | ny 1 | ny 2 | kol 3 | ny 1 | ny 2 | kol 4 | kol 5
där kol 2 och 3 som sagt är textboxar. (de nya kolumnerna är uträkningar baserade på textboxarnas värden)
problemställning:
Under gridden har jag en saveknapp, denna ska loopa igenom raderna och spara dem med de nya värdena i textboxarna i kol 2 och 3 (samt kol 5 som är en checkbox). Alltså vill användaren editera flera fält på en gång i gridden, lite som excel
Jag kan inte ha viewstate på på griddden, för då försvinner textboxarna vid postback. Eftersom jag inte har viewstate påslaget så existerar griddens antal rader, men de är tomma. Om jag slår på viewstate får jag tag på dem men tappar textboxarna vid postback (byter i droplistan för att se ny uträkning t ex) eftersom templatekolumnerna inte behåller sitt innehåll...
Jag provade faktiskt att skapa textboxarna och templatekolumnerna programmattiskt men stötte då på två problem. 1: min kunskap gjorde att jag inte hittade hur jag skulle sätta textboxens text från objektet vid laddning av sidan och 2: det var snårigt att kila in de nya dynamiska kolumnerna på rätt ställe...
någon som har en ide om hur jag ska laborera vidare?
Jag kan inte ha viewstate på på griddden, för då försvinner textboxarna vid postback.
Det förstår jag inte, för lösningen borde vara att ha din viewstate påslagen och återskap alla dina controller i Page_Init(). Alltså all den kod som du kör för att skapa kontrollerna när du ändrar i din dropdownlista, skall du köra i Page_Init() metoden (eller i något tidigare event), så kommer ASP.NET att automatiskt binda ihop alla dina värden med dessa kontroller...
ohoj, jag ska prova detta så fort jag kommer åt :)
Återkommer med resultat
(du förstod att textboxarna inte skapas programmattiskt utan ligger i templatekolumner i gridden på ascx sidan va, det är bara de dynamiska som byggs upp i codebehind vid postback)
257 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9