2011-04-19 4 views
0

안녕하세요 crud messagebox에서 코드를 간소화하고 싶습니다. 나는 현재 CRUD 폼의 20 개 페이지에 4 개의 버튼을 만들고, 삭제 및 재설정을 업데이트합니다. 어떻게 이것을 사용자 정의 컨트롤이되도록 단순화합니까? 그래서 난 "성공적으로 저장", "죄송합니다, 오류"을 writting 계속해야 돈 것을 ...어떻게 crud를 단순화 할 수 있습니다

내 코드

protected override void btnSave_Click(object sender, EventArgs e) 
    { 
     if (!validateBeforeSave()) return; 

     if (MessageBox.Show(MessageManager.SaveAsk, "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) 
     { 
      try 
      {     
       BindValueToObject();     

       if (Convert.ToInt32(lblEmpId.Text) == 0) 
       { 
        user.Add(); 
        ResetAfterSave(true, user.Id); 
        base.Success = true; 
       } 
       else 
       { 
        user.Update(); 
        ResetAfterSave(false, user.Id); 
        base.Success = true; 
       } 
       base.btnSave_Click(this, null); 
      } 
      catch (Exception ex) 
      { 
       Logger.Error(typeof(UsersForm), ex.ToString()); 
       base.Success = false; 
       base.btnSave_Click(this, null); 
      } 
     } 
    } 
    protected override void btnDelete_Click(object sender, EventArgs e) 
    { 
     if (null == dgUser.CurrentRow) return; 
     user.Id = (int)dgUser.SelectedRows[0].Cells["empId"].Value; 

     try 
     { 
      if ((MessageBox.Show(MessageManager.DeleteAsk, "Are you sure to delete?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)) 
      { 
       user.Delete(); 
       ResetAfterSave(false, 0); 
       base.Success = true; 
       base.btnDelete_Click(this, null); 
      } 
     } 
     catch 
     { 
      base.Success = false; 
      base.btnDelete_Click(this, null); 
     } 
    } 

base.btnSave_Click (이, 널 (null)); 아래에서 이것을 내가 깃발을 통과하는 곳이라고 부릅니다.

protected virtual void btnSave_Click(object sender, EventArgs e) 
    { 
     if (this.success) 
      MessageBox.Show(MessageManager.SaveSuccess, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     else 
     { 
      MessageBox.Show(MessageManager.SaveFailed, "Fail to save", MessageBoxButtons.OK, MessageBoxIcon.Stop); 
      return; 
     } 
    } 

나는 이것을 반복해서 반복해서 고칠 때 짜증이났다.

+2

일부 코드는 정확히 무엇을하고 있는지 보여주기에 좋을 것입니다. – Woot4Moo

+0

나는 그것이 UI 디자인 UI에 달려 있다고 생각한다. 나를 위해, 나는 일반적으로 삭제 및 업데이트와 검색을 연결합니다. 일반적으로로드시에 선택이 완료되면 사용자가 필터를 수행하거나 업데이트 또는 삭제하려는 필터를 클릭 할 수 있습니다. 이 3 개가 1 페이지에 함께 제공됩니다. 삽입 기능은 새로운 UI가 표시되는 팝업 형태로 나타납니다. –

+0

팝업이없는 CRUD가있는 페이지가 더 좋다고 생각합니다. 왼쪽에 gridview가 있고 오른쪽에 몇 개의 컨트롤이있는 페이지를 시각화하는 데 도움이됩니다. gridview ... gridview를 클릭하면 해당 데이터가 오른쪽의 컨트롤에 표시됩니다. – VeecoTech

답변

0

죄송합니다. 캡슐화되지 않았습니다. 필드가 추출되는 동안 캡슐화 될 수 있습니다. [리 팩터]> [추출 방법]에서이 옵션을 선택할 수 있습니다. 이 방법들을 주요 형식으로 작성하고 공개하십시오. 그런 다음 응용 프로그램 전체에서 활용하십시오.

나는 그보다 더 좋은 옵션이 있지만 위험한 경우에는 스스로 해결하고 싶습니다.

우리가하는 일은 메인 폼에서 이벤트 처리기를 public으로 선언하는 것입니다.

이제 폼의 저장 버튼 중 하나를 선택하고 속성> 이벤트>로 이동하여 btnSave_Click을 선택하십시오. 소프트웨어를 통해 동일한 방법을 사용할 수 있습니다. 단, 어디에서나 실행할 수있는 동일한 코드가 있어야합니다.

관련 문제