private void grdTasks_ItemCommand(object source, DataGridCommandEventArgs e) { if (e.CommandName == "Collapse") { string s = pc["Report_CollapsedProjectsList"]; if (s != null && s.Length > 0) { if (s[s.Length - 1] == ';') { s += e.CommandArgument.ToString(); } else { s += ";" + e.CommandArgument.ToString(); } pc["Report_CollapsedProjectsList"] = s; } else { pc["Report_CollapsedProjectsList"] = e.CommandArgument.ToString(); } BindDataGrid(); } if (e.CommandName == "Expand") { string s = pc["Report_CollapsedProjectsList"]; if (s == e.CommandArgument.ToString()) { s = string.Empty; } else { int index = s.IndexOf(e.CommandArgument.ToString() + ";"); if (index >= 0) { s = s.Remove(index, e.CommandArgument.ToString().Length + 1); } else { index = s.IndexOf(";" + e.CommandArgument.ToString()); if (index >= 0) { s = s.Remove(index, e.CommandArgument.ToString().Length + 1); } } } pc["Report_CollapsedProjectsList"] = s; BindDataGrid(); } if (e.CommandName == "ProjectStart") { DataTable dt = GanttManager.GetAnalysisDataTable(BasePlan1, BasePlan2); if (dt.Rows.Count > 0) { _topProjectId = (int)dt.Rows[0]["ProjectId"]; } int projectId = int.Parse(e.CommandArgument.ToString()); DateTime zeroPoint = DateTime.Now; using (IDataReader reader = Project.GetProject(projectId)) { if (reader.Read()) { if (reader["TargetStartDate"] != DBNull.Value) { zeroPoint = (DateTime)reader["TargetStartDate"]; } } } pc["GantChartMilestones_Lx_New"] = (GanttManager.GetPortionX(_topProjectId, zeroPoint)).ToString(); Response.Redirect("../Projects/ProjectsByMilestones.aspx", true); } if (e.CommandName == "ProjectEnd") { DataTable dt = GanttManager.GetAnalysisDataTable(BasePlan1, BasePlan2); if (dt.Rows.Count > 0) { _topProjectId = (int)dt.Rows[0]["ProjectId"]; } int projectId = int.Parse(e.CommandArgument.ToString()); DateTime zeroPoint = DateTime.Now; using (IDataReader reader = Project.GetProject(projectId)) { if (reader.Read()) { if (reader["TargetFinishDate"] != DBNull.Value) { zeroPoint = (DateTime)reader["TargetFinishDate"]; } } } pc["GantChartMilestones_Lx_New"] = (GanttManager.GetPortionX(_topProjectId, zeroPoint) - 1).ToString(); Response.Redirect("../Projects/ProjectsByMilestones.aspx", true); } }
private void BindDataGrid() { DataTable dt = GanttManager.GetAnalysisDataTable(BasePlan1, BasePlan2); if (dt != null && dt.Rows.Count > 0) { _topProjectId = (int)dt.Rows[0]["ProjectId"]; if (pc["ProjectsByMS_PageSize"] == null) { pc["ProjectsByMS_PageSize"] = "10"; } grdTasks.PageSize = int.Parse(pc["ProjectsByMS_PageSize"]); int pageindex = 0; int ppi = dt.Rows.Count / grdTasks.PageSize; if (pc["ProjectsByMS_Page"] != null) { pageindex = int.Parse(pc["ProjectsByMS_Page"]); if (dt.Rows.Count % grdTasks.PageSize == 0) { ppi = ppi - 1; } if (pageindex <= ppi) { grdTasks.CurrentPageIndex = pageindex; } else { grdTasks.CurrentPageIndex = 0; } } int fh = dt.Rows.Count % grdTasks.PageSize; if (pageindex == ppi && fh == 0) { fh = grdTasks.PageSize * 19 + 29; } else if (pageindex < ppi) { fh = grdTasks.PageSize * 19 + 29; } else { fh = fh * 19 + 29; } iframeheight = fh.ToString(); grdTasks.DataSource = dt.DefaultView; grdTasks.Columns[3].HeaderText = LocRM.GetString("tProjectMilestone"); grdTasks.DataBind(); foreach (DataGridItem dgi in grdTasks.Items) { ImageButton ib = (ImageButton)dgi.FindControl("ibProjectStart"); if (ib != null) { ib.Attributes.Add("title", LocRM.GetString("tProjectStartDate")); } ib = (ImageButton)dgi.FindControl("ibProjectEnd"); if (ib != null) { ib.Attributes.Add("title", LocRM.GetString("tProjectEndDate")); } } divImg.Style.Add("HEIGHT", iframeheight + "px"); hdnLinkToGantt.Value = String.Format("../Projects/GanttReportImage2.aspx?PageItems={0}&PageNumber={1}&Days=366&RenderPortion=1&BasePlanSlotId={2}&OriginalPlanSlotId={3}", grdTasks.PageSize, grdTasks.CurrentPageIndex, ddBasePlan.SelectedValue, ddOrBasePlan.SelectedValue); } }