Jason Livengood
asked on
Trying to manipulate the displayed value in a GridView column
I have a column I am creating in a GridView. Now the values retrived from the database for this column are integers.(1,2,3,4) I am trying to run a test for the integer retrieved and then manipulate the DataFormat string of the column based on the test. So if the value retrieved is 1, then write "Customer Complaint".
However currently my tests (The switch case) do not seem to be running. Question becomes what column property do I actually need to test on as currently testing on the .DataField property does not seem to work. Running a test with a series of IF statements currently yields the same result. Any direction would be greatly appreciated.
Jason
However currently my tests (The switch case) do not seem to be running. Question becomes what column property do I actually need to test on as currently testing on the .DataField property does not seem to work. Running a test with a series of IF statements currently yields the same result. Any direction would be greatly appreciated.
Jason
BoundField correspondencetype_i = new BoundField();
correspondencetype_i.HeaderText = "Correspondence Type";
correspondencetype_i.DataField = "correspondencetype_i"
switch (correspondencetype_i.DataField)
{
case "1":
correspondencetype_i.DataFormatString = "Customer Complaint";
break;
case "2":
correspondencetype_i.DataFormatString = "Technical Support";
break;
case "3":
correspondencetype_i.DataFormatString = "Customer Suggestion";
break;
case "4":
correspondencetype_i.DataFormatString = "Repair(RMA)";
break;
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Then in your RowDataBound Event handler do something like below:
protected void GridView4_RowDataBound(obj
{
if (e.Row.RowType == DataControlRowType.DataRow
{
DataRowView dv = (DataRowView)e.Row.DataIte
string value = "";
//yourColumnIndex below is the column in your record returned from DB that is being bound to this field
int dbValue = Convert.ToInt32(dv.Row.Ite
switch (dbValue )
{
case 1:
value = "Customer Complaint";
break;
case 2:
value = "Technical Support";
break;
//and so on
}
//yourColumnIndexToReplace
e.Row.Cells[yourColumnInde
}
}