I have the following code for a radgrid. When i click on Add a little
form comes up and when i fill it out and click insert, i am trying to
loop through the form values but i don't know what exactly i should loop
or how. Because its not really a form collection.
Any help is very much appreciated.
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(Session[
"GridData"
] ==
null
)
{
DataTable table = GetTable();
Session.Add(
"GridData"
, table);
}
DefineGridStructure();
}
private
void
DefineGridStructure()
{
RadGrid grid =
new
RadGrid();
grid.ID =
"RadGrid1"
;
grid.NeedDataSource +=
new
GridNeedDataSourceEventHandler(grid_NeedDataSource);
grid.AutoGenerateEditColumn =
true
;
grid.AutoGenerateDeleteColumn =
true
;
grid.AllowAutomaticInserts =
true
;
grid.Width = Unit.Percentage(100);
grid.PageSize = 15;
grid.AllowPaging =
true
;
grid.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric;
grid.AutoGenerateColumns =
false
;
grid.MasterTableView.Width = Unit.Percentage(100);
grid.MasterTableView.CommandItemDisplay = GridCommandItemDisplay.TopAndBottom;
grid.AllowAutomaticDeletes =
true
;
grid.AllowAutomaticUpdates =
true
;
grid.InsertCommand +=grid_InsertCommand;
grid.MasterTableView.DataKeyNames =
new
string
[] {
"RowNumber"
};
GridBoundColumn boundColumn =
new
GridBoundColumn();
boundColumn.DataField =
"RowNumber"
;
boundColumn.HeaderText =
"RowNumber"
;
boundColumn.ReadOnly =
true
;
grid.MasterTableView.Columns.Add(boundColumn);
boundColumn =
new
GridBoundColumn();
boundColumn.DataField =
"Size"
;
boundColumn.HeaderText =
"Size"
;
grid.MasterTableView.Columns.Add(boundColumn);
boundColumn =
new
GridBoundColumn();
boundColumn.DataField =
"Description"
;
boundColumn.HeaderText =
"Description"
;
grid.MasterTableView.Columns.Add(boundColumn);
boundColumn =
new
GridBoundColumn();
boundColumn.DataField =
"Quantity"
;
boundColumn.HeaderText =
"Quantity"
;
grid.MasterTableView.Columns.Add(boundColumn);
boundColumn =
new
GridBoundColumn();
boundColumn.DataField =
"Duration"
;
boundColumn.HeaderText =
"Duration"
;
grid.MasterTableView.Columns.Add(boundColumn);
boundColumn =
new
GridBoundColumn();
boundColumn.DataField =
"DurationType"
;
boundColumn.HeaderText =
"DurationType"
;
grid.MasterTableView.Columns.Add(boundColumn);
boundColumn =
new
GridBoundColumn();
boundColumn.DataField =
"Amount"
;
boundColumn.HeaderText =
"Amount"
;
grid.MasterTableView.Columns.Add(boundColumn);
PlaceHolder1.Controls.Add(grid);
}
private
void
grid_InsertCommand(
object
sender, GridCommandEventArgs e)
{
// Looking to loop through the form so i can insert the values into the datatable
}
void
grid_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
DataTable current = (DataTable)Session[
"GridData"
];
RadGrid grid = (RadGrid)sender;
grid.DataSource = current;
}
static
DataTable GetTable()
{
//
// Here we create a DataTable with a few columns.
//
// Create Datatable to store all colums
DataTable dt =
new
DataTable();
DataRow dr =
null
;
dt.Columns.Add(
new
DataColumn(
"RowNumber"
,
typeof
(
string
)));
dt.Columns.Add(
new
DataColumn(
"Size"
,
typeof
(
string
)));
dt.Columns.Add(
new
DataColumn(
"Description"
,
typeof
(
string
)));
dt.Columns.Add(
new
DataColumn(
"Quantity"
,
typeof
(
string
)));
dt.Columns.Add(
new
DataColumn(
"Unit"
,
typeof
(
string
)));
dt.Columns.Add(
new
DataColumn(
"Duration"
,
typeof
(
string
)));
dt.Columns.Add(
new
DataColumn(
"DurationType"
,
typeof
(
string
)));
dt.Columns.Add(
new
DataColumn(
"Amount"
,
typeof
(
string
)));
dr = dt.NewRow();
dr[
"RowNumber"
] = 1;
dr[
"Size"
] =
string
.Empty;
dr[
"Description"
] =
string
.Empty;
dr[
"Quantity"
] =
string
.Empty;
dr[
"Unit"
] =
string
.Empty;
dr[
"Duration"
] =
string
.Empty;
dr[
"DurationType"
] =
string
.Empty;
dr[
"Amount"
] =
string
.Empty;
dt.Rows.Add(dr);
return
dt;
}