EmployeeList.ascx.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Collections;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using System.Web.UI.WebControls.WebParts;
  10. using System.Web.UI.HtmlControls;
  11. namespace UpdatePanelUserControl
  12. {
  13. public partial class EmployeeList : System.Web.UI.UserControl
  14. {
  15. public int EmployeeID
  16. {
  17. get
  18. {
  19. if (EmployeesGridView.SelectedIndex != -1)
  20. return (int)EmployeesGridView.DataKeys[EmployeesGridView.SelectedIndex].Value;
  21. else
  22. return -1;
  23. }
  24. }
  25. public UpdatePanelUpdateMode UpdateMode
  26. {
  27. get { return this.EmployeeListUpdatePanel.UpdateMode; }
  28. set { this.EmployeeListUpdatePanel.UpdateMode = value; }
  29. }
  30. public void Update()
  31. {
  32. this.EmployeeListUpdatePanel.Update();
  33. }
  34. public int SelectedIndex
  35. {
  36. get { return this.EmployeesGridView.SelectedIndex; }
  37. }
  38. protected override void OnPreRender(EventArgs e)
  39. {
  40. base.OnPreRender(e);
  41. this.LastUpdatedLabel.Text = DateTime.Now.ToString();
  42. }
  43. protected override void OnInit(EventArgs e)
  44. {
  45. base.OnInit(e);
  46. this.EmployeesGridView.SelectedIndexChanged += this.EmployeesGridView_SelectedIndexChanged;
  47. this.EmployeesGridView.PageIndexChanged += this.EmployeesGridView_PageIndexChanged;
  48. this.EmployeesGridView.DataBound += this.EmployeesGridView_DataBound;
  49. this.EmployeesGridView.Sorted += this.EmployeesGridView_Sorted;
  50. }
  51. public event EventHandler SelectedIndexChanged;
  52. protected void OnSelectedIndexChanged(EventArgs e)
  53. {
  54. if (SelectedIndexChanged != null)
  55. {
  56. SelectedIndexChanged(this, e);
  57. }
  58. }
  59. private void EmployeesGridView_SelectedIndexChanged(object sender, EventArgs e)
  60. {
  61. this.SelectedIndexChanged(this, e);
  62. ViewState["SelectedEmployeeID"] = this.EmployeeID;
  63. }
  64. private void EmployeesGridView_PageIndexChanged(object sender, EventArgs e)
  65. {
  66. if (EmployeesGridView.SelectedIndex != -1)
  67. {
  68. this.EmployeesGridView.SelectedIndex = -1;
  69. this.SelectedIndexChanged(this, e);
  70. }
  71. }
  72. private void EmployeesGridView_Sorted(object sender, EventArgs e)
  73. {
  74. if (EmployeesGridView.SelectedIndex != -1)
  75. {
  76. this.EmployeesGridView.SelectedIndex = -1;
  77. this.SelectedIndexChanged(this, e);
  78. }
  79. }
  80. protected void EmployeesGridView_DataBound(object sender, EventArgs e)
  81. {
  82. int selectedEmployeeID =
  83. ViewState["SelectedEmployeeID"] == null ? -1 : (int)ViewState["SelectedEmployeeID"];
  84. for (int i = 0; i < EmployeesGridView.Rows.Count; i++)
  85. if ((int)EmployeesGridView.DataKeys[i].Value == selectedEmployeeID)
  86. {
  87. EmployeesGridView.SelectedIndex = i;
  88. this.SelectedIndexChanged(this, e);
  89. }
  90. }
  91. }
  92. }