I am facing a strange problem while working gridview .Here is the problem description:
I am using a gridview which consist of boundfields and templatefields. templatefields contains some controls like check boxes and image. My gridview contains one template field at last colummn. My requirement is to add the N nnumber of boundfields before last templatefield at runtime. I have added the code something like this:
Now the gridview displays all the boundfields and tempaltefields(with controls added within it) along with the newly added boundfields. But the controls within templatefield disappears on page postback however newly added boundfields are displayed correctly.
I tried to disable the gridview viewstate and binded the grid on onInit/PreRender event of page in this case controls are visible but here faced some other problem. in this case the gridview.rows.count is zero and gridview rows are not readable.
Can anyone help me solving this strange problem.
[Edit]Code block added[/Edit]
It is default behavior for dynamic control for ASP.net web form. Because ASP.net can not remember dynamic object using viewstate. For example if you create a textbox dynamically from your load event and add that to any panel using condition like if !Page.IsPostBack then first time you see the TextBox in your form but next time when it postback then the textbox will be destroyed. What you will do every postback/non postback you need to create that textbox and add to the panel control. Same thing happen here for Your BoundField control in GridView. So you can do is everytime you should create that BoundField and attached to grid.
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)