I have a radchart:
I am populating with a DataView:
public DataView GetProposedWaitingChart()
{
List<int> lst = new List<int>();
lst.Add( (int)ApprovalStatus.Proposed );
lst.Add( (int)ApprovalStatus.WaitingforApproval );
string listStatus = Util.CompressList( lst, "," );
List<ITProject> projects = _dal.GetProjectByApprovalSatus( listStatus );
DataTable dt = new DataTable();
dt.Columns.Add( "Name" );
dt.Columns.Add( "Department" );
DataColumn dc = new DataColumn( "Value", Type.GetType( "System.Int32" ) );
dt.Columns.Add( dc );
var groupedStatus = from f in projects
group f by new {
f.Department,
f.ApprovalStatus
} into myGroup
orderby myGroup.Key.ApprovalStatus, myGroup.Key.Department
select new { myGroup.Key.Department, myGroup.Key.ApprovalStatus, Count = myGroup.Count() };
foreach (var obj in groupedStatus) {
string department = obj.Department;
string status = obj.ApprovalStatus;
int count = obj.Count;
dt.Rows.Add( status, department, count );
}
DataView dv = dt.DefaultView;
dv.Sort = "Name, Department";
return dv;
}
----------------------------------------------------------------------
I have verified that my datatable looks correct after the foreach loop...
? dt.Rows[0].ItemArray
{object[3]}
[0]: "Proposed"
[1]: "IT"
[2]: 2
? dt.Rows[1].ItemArray
{object[3]}
[0]: "Waiting for Approval"
[1]: "Advisory Services"
[2]: 1
----------------------------------------------------------------------
but I am getting the attached output (projbad.jpg)...
---------------------------------------------------------------------------------
If I just add dummy rows to my datatable rather than the database data, it works just fine (projgood.jpg)
dt.Rows.Add( "Proposed", "IT", 4 );
dt.Rows.Add( "Waiting", "FA", 4 );
dt.Rows.Add( "Proposed", "TA", 1 );
dt.Rows.Add( "Proposed", "FA", 2 );
dt.Rows.Add( "Waiting", "IT", 3 );
dt.Rows.Add( "Waiting", "TA", 2 );
DataView dv = dt.DefaultView;
dv.Sort = "Name, Department";
Any ideas? Thanks
<
telerik:RadChart
ID
=
"rcProposedWaiting"
runat
=
"server"
Width
=
"750px"
DataGroupColumn
=
"Name"
AutoTextWrap="true" Skin="Hay" ChartTitle-TextBlock-Text="Projects By Department"
SeriesOrientation="Horizontal" AutoLayout="true">
<
Legend
>
<
Appearance
GroupNameFormat
=
"#VALUE"
>
</
Appearance
>
</
Legend
>
<
PlotArea
>
<
XAxis
DataLabelsColumn
=
"Department"
>
</
XAxis
>
</
PlotArea
>
</
telerik:RadChart
>
I am populating with a DataView:
public DataView GetProposedWaitingChart()
{
List<int> lst = new List<int>();
lst.Add( (int)ApprovalStatus.Proposed );
lst.Add( (int)ApprovalStatus.WaitingforApproval );
string listStatus = Util.CompressList( lst, "," );
List<ITProject> projects = _dal.GetProjectByApprovalSatus( listStatus );
DataTable dt = new DataTable();
dt.Columns.Add( "Name" );
dt.Columns.Add( "Department" );
DataColumn dc = new DataColumn( "Value", Type.GetType( "System.Int32" ) );
dt.Columns.Add( dc );
var groupedStatus = from f in projects
group f by new {
f.Department,
f.ApprovalStatus
} into myGroup
orderby myGroup.Key.ApprovalStatus, myGroup.Key.Department
select new { myGroup.Key.Department, myGroup.Key.ApprovalStatus, Count = myGroup.Count() };
foreach (var obj in groupedStatus) {
string department = obj.Department;
string status = obj.ApprovalStatus;
int count = obj.Count;
dt.Rows.Add( status, department, count );
}
DataView dv = dt.DefaultView;
dv.Sort = "Name, Department";
return dv;
}
----------------------------------------------------------------------
I have verified that my datatable looks correct after the foreach loop...
? dt.Rows[0].ItemArray
{object[3]}
[0]: "Proposed"
[1]: "IT"
[2]: 2
? dt.Rows[1].ItemArray
{object[3]}
[0]: "Waiting for Approval"
[1]: "Advisory Services"
[2]: 1
----------------------------------------------------------------------
but I am getting the attached output (projbad.jpg)...
---------------------------------------------------------------------------------
If I just add dummy rows to my datatable rather than the database data, it works just fine (projgood.jpg)
dt.Rows.Add( "Proposed", "IT", 4 );
dt.Rows.Add( "Waiting", "FA", 4 );
dt.Rows.Add( "Proposed", "TA", 1 );
dt.Rows.Add( "Proposed", "FA", 2 );
dt.Rows.Add( "Waiting", "IT", 3 );
dt.Rows.Add( "Waiting", "TA", 2 );
DataView dv = dt.DefaultView;
dv.Sort = "Name, Department";
---------------------------------------------------------------------------------
Any ideas? Thanks