ProjectList.aspx.cs
上传用户:autodoor
上传日期:2022-08-04
资源大小:9973k
文件大小:4k
源码类别:

.net编程

开发平台:

Others

  1. using System;
  2. using System.Web.UI.WebControls;
  3. using qminoa.BLL.PM;
  4. namespace qminoa.Webs.PM
  5. {
  6. public class ProjectList : qminoa.Webs.PageBase
  7. {
  8. public const string UserRoleNone = "0";
  9. public const string UserRoleAdministrator = "1";
  10. public const string UserRoleProjectManager = "2";
  11. public const string UserRoleConsultant = "3";
  12. protected System.Web.UI.WebControls.LinkButton LinkButton1;
  13. protected System.Web.UI.WebControls.Button NewProjectButton;
  14. protected System.Web.UI.WebControls.DataGrid ProjectsGrid;
  15. private PMUser  _user;
  16. private void Page_Load(object sender, System.EventArgs e)
  17. {
  18. this.PageBegin("项目管理",true);
  19. _user = new PMUser(Convert.ToInt16(this.Empid));
  20. if(_user.Role == UserRoleConsultant || _user.Role == UserRoleNone)
  21. {
  22. Response.Redirect(Application["vRoot"]+"/login.aspx");  
  23. }
  24. if (!IsPostBack)
  25. {
  26. BindProjects();
  27. }
  28. }
  29. private void BindProjects()
  30. {
  31. ProjectsCollection projectList = Project.GetProjects(_user.UserID, _user.Role);
  32. SortGridData(projectList, SortField, SortAscending);
  33. ProjectsGrid.DataSource = projectList;
  34. ProjectsGrid.DataBind();
  35. }
  36. private void SortGridData(ProjectsCollection list, string sortField, bool asc)
  37. {
  38. ProjectsCollection.ProjectFields sortCol = ProjectsCollection.ProjectFields.InitValue;
  39. switch(sortField)
  40. {
  41. case "Name":
  42. sortCol = ProjectsCollection.ProjectFields.Name;
  43. break;
  44. case "Manager":
  45. sortCol = ProjectsCollection.ProjectFields.ManagerUserName;
  46. break;
  47. case "Completion":
  48. sortCol = ProjectsCollection.ProjectFields.CompletionDate;
  49. break;
  50. case "Duration":
  51. sortCol = ProjectsCollection.ProjectFields.Duration;
  52. break;
  53. default:
  54. break;
  55. }
  56. list.Sort(sortCol, asc);
  57. }
  58. #region Web Form Designer generated code
  59. override protected void OnInit(EventArgs e)
  60. {
  61. //
  62. // CODEGEN: This call is required by the ASP.NET Web Form Designer.
  63. //
  64. InitializeComponent();
  65. base.OnInit(e);
  66. }
  67. /// <summary>
  68. /// Required method for Designer support - do not modify
  69. /// the contents of this method with the code editor.
  70. /// </summary>
  71. private void InitializeComponent()
  72. {    
  73. this.NewProjectButton.Click += new System.EventHandler(this.NewProjectButton_Click);
  74. this.ProjectsGrid.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.ProjectsGrid_Sort);
  75. this.Load += new System.EventHandler(this.Page_Load);
  76. }
  77. #endregion
  78. private void NewProjectButton_Click(object sender, System.EventArgs e)
  79. {
  80. Response.Redirect("ProjectDetails.aspx", false);
  81. }
  82. protected void ProjectsGrid_Page(Object sender, DataGridPageChangedEventArgs e) 
  83. {
  84. ProjectsGrid.CurrentPageIndex = e.NewPageIndex;
  85. BindProjects();
  86. }
  87. private void ProjectsGrid_Sort(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
  88. {
  89. SortField = e.SortExpression;
  90. BindProjects();
  91. }
  92. string SortField 
  93. {
  94. get 
  95. {
  96. object o = ViewState["SortField"];
  97. if (o == null) 
  98. {
  99. return String.Empty;
  100. }
  101. return (string)o;
  102. }
  103. set 
  104. {
  105. if (value == SortField) 
  106. {
  107. SortAscending = !SortAscending;
  108. }
  109. ViewState["SortField"] = value;
  110. }
  111. }
  112. bool SortAscending 
  113. {
  114. get 
  115. {
  116. object o = ViewState["SortAscending"];
  117. if (o == null) 
  118. {
  119. return true;
  120. }
  121. return (bool)o;
  122. }
  123. set 
  124. {
  125. ViewState["SortAscending"] = value;
  126. }
  127. }
  128. }
  129. }