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