Introduction
I have frequently come across the requirement where values from a gridview
need to be extracted. The code here is a generic one that extracts the cell values in a given row and returns the collection.
Using the Code
The code is given below:
public IDictionary<string, object> GetValues(GridViewRow row)
{
IOrderedDictionary dictionary = new OrderedDictionary();
foreach (Control control in row.Controls)
{
DataControlFieldCell cell = control as DataControlFieldCell;
if ((cell != null) && cell.Visible)
{
cell.ContainingField.ExtractValuesFromCell
(dictionary, cell, row.RowState, true);
}
}
IDictionary<string, object> values = new Dictionary<string, object>();
foreach (DictionaryEntry de in dictionary)
{
values[de.Key.ToString()] = de.Value;
}
return values;
}
The values returned can be accessed in the following way:
GridViewRow row = GridView1.Rows[e.RowIndex];
var m_values = this.GetValues(row);
string userid = m_values["UserID"].ToString();
where the string
value is the Column
name in the GridView
.
The above code might not work properly in case of cells having UserControl
s. For all other cases whether it be a bound field or template field, the code would work.
History
- 21st January, 2010: Initial post
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.