public CourseScoreItem()
        {
            InitializeComponent();

            UserPermission = Framework.User.Acl[FCode.GetCode(GetType())];

            btnAdd.Visible    = UserPermission.Editable;
            btnModify.Visible = UserPermission.Editable;
            btnDelete.Visible = UserPermission.Editable;

            InitializeBackgroundWorker();
            _items     = new Dictionary <SemesterInfo, List <ListViewItem> >();
            _RunningID = string.Empty;
        }
        public SemesterScoreItem()
        {
            InitializeComponent();
            InitializeQuickAddButton();

            _domainList = new List <string>();
            InitializeColumnHeader();

            UserPermission = Framework.User.Acl[FCode.GetCode(GetType())];

            btnAdd.Visible    = UserPermission.Editable;
            btnModify.Visible = UserPermission.Editable;
            btnDelete.Visible = UserPermission.Editable;
            btnView.Visible   = UserPermission.Viewable & !UserPermission.Editable;

            _worker         = new BackgroundWorker();
            _worker.DoWork += delegate(object sender, DoWorkEventArgs e)
            {
                if (_student == null)
                {
                    _student = JHStudent.SelectByID("" + e.Argument);
                }
                else if (_student.ID != "" + e.Argument)
                {
                    _student = JHStudent.SelectByID("" + e.Argument);
                }

                e.Result = JHSemesterScore.SelectByStudentID("" + e.Argument);
            };
            _worker.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs e)
            {
                if (_RunningID != PrimaryKey)
                {
                    _RunningID = PrimaryKey;
                    _worker.RunWorkerAsync(_RunningID);
                    return;
                }

                _recordList = e.Result as List <JHSemesterScoreRecord>;
                FillListView();
            };

            FISCA.InteractionService.SubscribeEvent("CalculationHelper.SaveSemesterScore", (sender, args) => {
                AfterSaveSemesterScore();
            });
        }