Hi Experts:
I'm using asp.net 2.0 with Visual Studio 2005. I'm trying to use the
GridView to display data. I need to programmatically add rows into the
GridView. So far could not find a way to do it. I appreciate it if any one
can show a piece of code doing that.
Thanks in advance!
Polaris
Hi Polaris
Gridview does not have direct support for inserting records. It can
only display the rows for data that already exists with a built-in
means of editing and updating.
It is possible to write code that will insert a blank record (with
default column values in cases where nulls are not allowed) into the
underlying data table, reload the grid with the databind method, then
put the grid into edit mode with the editindex property set to the
index of the new record. This is messy and complicated because your
code would have to calculate the index value of the new record, which
is not simple if the grid is paged. This may be why insert is not
supported with GridView.
It's much easier to use FormView for this purpose which only displayes
one record at a time. FormView has an insert mode and makes it much
simpler.
Hence to achieve what you require (i.e. to add a means of inserting a
new record in addition to displaying a list in a GridView control) you
need both types of control in your application to handle the data. Add
a button somewhere on the web form to signal that the user wishes to
add a new record, then code the event handler to switch to displaying
the FormView control (in insert mode) instead of the GridView. When
the user clicks the button on the FormView to save the new record, use
the ItemInserted event handler to switch back to displaying GridView
(re-executing Databind if necessary).
HTH
P Hall