few days back i spent alot of my time in googling about bindable controls creation on runtime but whatever tutorial/article i follow fail me to achieve my purpose mostly at 99% which makes me crazy coz this doesn’t happen with me only 1 or 2 times :( so i decided then when i will achieve this functionality i will must write blog about it and solution as well ;)
finally today i ‘d like to talk about dynamically controls creation in asp.net which i found quite easy but for newbie it become quite hectic because to create control at runtime is not an issue but to persist them after post back is an issue even u keep their EnableViewState property true :), solution is quite simple but that depends upon scenario/need. if you need to create such controls e.g, gridview, datalist, repeater,.. which need to bind then simply follow following steps:
- create controls in Page_Init event
- bind controls in Page_Load event
thats it :) its a matter of two steps but drive you nuts if you don’t know coz those controls which created on Page_Init doesn’t persist after postback if you just create them in Page_Load and in Not Postback condition coz it will be created once when first time page loads afterwards it wont be created so u wont be able to see it again but if u don’t put Not Postback condition then everytime it willl be create suppose if you create edittable grid (or any control) and u edit something and press update button next time but on page_load event it will create all controls again and somehow bind as well if u r binding then ur modifications wont remain anymore so …………… :s that was just a 1 scenario so if you bind again and again your modification wont persist and if you don’t create control again and again on each postback ur controls wont persist :D
so the solution is to create controls in Page_Init event without putting condition of Not postback and bind your controls in Page_Load event under condition of Not Postback …
few solutions i would like to write which are somehow out of the scope of this article but you might get whilst working on asp.net binding controls …..
sometime when we want to bubble event means we use datalist and in datalist we put button and button will fire event of datalist which can be capture in Item_Command event of that datalist, WONT BE FIRE if you write databinding code of datalist in Page_Load event without or out of condition of Not Postback so keep your databinding code under Page not postback condition.
you can’t rebind your code from bubble event means if you have any button/linkbutton/image button or any such control which cause postback and fire event of datalist don’t try to rebind your datalist in it .. coz it wont happen from there :)
may be some time you found problem of getting some events fired twice :D it happens when your AutoEventWireUp = true so keep it false (good practice)
i will post couple of sample code very soon or you may post comment with your email id to get sample codes via email :)