asp.net - dynamic columns disappears after postback -
i have gridview boundfields , 2 templatefields. in these 2 templatefields, dynamically create usercontrols containing dropdownlist , textbox, users can modify.
when try values of controls after postback, values in boundfields still there dynamic controls disappears. can create them again won't user's values... how can these values before they're lost?
here's of code:
in rowdatabound event:
select case type case "booleanbis" e.row.cells(2).controls.clear() dim list1 booleanbislist = new booleanbislist(avant, false) e.row.cells(2).controls.add(list1) e.row.cells(4).controls.clear() dim list2 booleanbislist = new booleanbislist(apres, true) e.row.cells(4).controls.add(list2) case "boolean" e.row.cells(2).controls.clear() dim list3 booleanlist = new booleanlist(avant, false) e.row.cells(2).controls.add(list3) e.row.cells(4).controls.clear() dim list4 booleanlist = new booleanlist(apres, true) e.row.cells(4).controls.add(list4) end select in button click event, try user control :
case "string" temp.champvaleurapres = directcast(tableau1.rows(i).cells(selectedcolumn).controls(1), textbox).text but error doesn't exist.
you should create dynamic controls in rowcreated instead of rowdatabound because event gets fired on every postback whereas rowdatabound fire when gridview gets databound it's datasource.
dynamically created controls must recreated on every postback same id before, retain values in viewstate , events fire correctly(f.e. dropdownlist's selectedindexchanged event).
so should create them in rowcreated , "fill" them in rowdatabound(f.e. dropdownlist datasource/items or textbox-text).
Comments
Post a Comment