출력(내역) 페이지를 만들었으니 이제~글쓰기 기능을 구현해보겠습니다.
글쓰기 버튼을 클릭하면 팝업창으로 구현해 보도록 할께요.
페이지 새로 추가해서 버튼 클릭시 해당 페이지로 이동하는 기능 보다는...팝업창 띄워서 글쓰기를 해볼꺼에요.
페이지 추가 보다도 음...패널 컨트롤 추가 해서 글쓰기 클릭하면 패널 보이게 안보이게 하는것도 있지만...
Silverlight4 Board 게시판 만들기 시작할때 학습목적! 으로 만든다고 했어요...제가 까먹을까봐 그래요...Orz
글쓰기 기능 구현 시작합니다.
Gg.Silver 프로젝트에서 추가 -> 새항목 -> 'Silverlight 페이지' 를 추가해주세요. 저는 이름을 Write.xaml 로 했습니다.
[그림 9-1]
추가됐으면~이제 디자인 해야겠죠? 추가한 Write 페이지 크기를 조절해주세요.
내역페이지에 팝업창으로 글쓰기 페이지 띄울꺼니깐요...Width=300, Height=200 으로 했습니다.
[그림 9-2]
저장, 취소(닫기) 버튼 도 있어야 하니깐 버튼(Button)도 2개 추가해주세요.
Write.xaml [디자인] |
[그림 9-3] <Grid x:Name="LayoutRoot" Background="Red"> <TextBlock Height="23" HorizontalAlignment="Left" Margin="34,16,0,0" Name="textBlock1" <TextBlock Height="23" HorizontalAlignment="Left" Margin="34,45,0,0" Name="textBlock2" <TextBox Height="23" HorizontalAlignment="Left" Margin="62,12,0,0" Name="txtName" <TextBox Height="23" HorizontalAlignment="Left" Margin="62,41,0,0" Name="txtTitle" <TextBlock Height="23" HorizontalAlignment="Left" Margin="34,74,0,0" Name="textBlock3" <TextBox Height="77" HorizontalAlignment="Left" Margin="62,70,0,0" Name="txtContent" <TextBlock Height="23" HorizontalAlignment="Left" Margin="12,158,0,0" Name="textBlock4" <TextBox Height="23" HorizontalAlignment="Right" Margin="0,154,159,0" Name="txtPwd" <Button Content="저장" Height="23" HorizontalAlignment="Left" Margin="182,165,0,0" <Button Content="취소" Height="23" HorizontalAlignment="Left" Margin="238,165,0,0" </Grid> |
다시 실버라이트 MainPage.xaml 디자인 페이지로 가서 글쓰기 버튼을 추가 해주세요.
[그림 9-4]
이제 글쓰기 버튼을 클릭하면 위에서 추가한 Write.xaml 페이지를 띄워야겠네요. MainPage.xaml.cs 페이지로 이동합니다.
[그림 9-5]
글쓰기 버튼 이벤트 추가 하시고~ ( 디자인에서 글쓰기 버튼 더블 클릭하셔도 됩니다. )
글쓰는 프로시저를 이전에 만들어 줬었는데요. [ 참고 : Silverlight4 Board 만들기 -5- ]
DLL로 추가 해서 Silverlight WCF에서 호출 할 꺼에요. 한번에 갑니다!
boradDac.cs |
public void WriteBoard(string name, string title, string content, string pwd) { DbCommand cmd = DbHelper.GetStoredProcCommand("SP_WRITE"); DbHelper.AddInParameter(cmd, "@NAME", DbType.String, name); DbHelper.AddInParameter(cmd, "@TITLE", DbType.String, title); DbHelper.AddInParameter(cmd, "@CONTENT", DbType.String, content); DbHelper.AddInParameter(cmd, "@PWD", DbType.String, pwd); DbHelper.ExecuteNonQuery(cmd); } |
boradBiz.cs |
public void WriteBoard(string name, string title, string content, string pwd) { using (GG.Dac.boardDac dac = new GG.Dac.boardDac()) { dac.WriteBoard(name, title, content, pwd); } } |
Silverlight WCF 에서 코드 추가합니다.
이전에 내역페이지 작업 할 때 Silverlight WCF.svc 추가 했었잖아요...여기서 코드 추가합니다. [ 참고 : Silverlight WCF ]
저는 이름을 BoardService.svc로 했었네요.
BoardService.svc.cs |
[OperationContract] public void WriteBoard(string name, string title, string content, string pwd) { try { using (GG.Biz.boardBiz biz = new GG.Biz.boardBiz()) { biz.WriteBoard(name, title, content, pwd); } } catch (Exception) { } return; } |
Silverlight WCF를 사용하는 프로젝트에서 서비스 참조를 업데이트 해줍니다.
[그림 9-6]
다시 Write.xaml.cs 로 가서 글쓰기 기능을 구현하는 코드를 작성합니다.
Write.xaml.cs |
void btnOK_Click(object sender, RoutedEventArgs e) { BoardServiceReference.BoardServiceClient svc = svc.WriteBoardCompleted += svc.WriteBoardAsync(txtName.Text, txtTitle.Text, txtContent.Text, txtPwd.Text); } void svc_WriteBoardCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { MessageBox.Show("저장완료"); this.Visibility = Visibility.Collapsed; } |
자~그럼 이제 글쓰기 테스트 해봅시다!
결과 화면~
[그림 9-7]
'프로젝트' 카테고리의 다른 글
Silverlihgt5 - 리스트 + 쓰기기능 구현 (2) | 2014.02.18 |
---|---|
Silverlight4 Board 만들기 -8- (5) | 2011.05.07 |
Silverlight4 Board 만들기 -7- (0) | 2011.05.01 |
Silverlight4 Board 만들기 -6- (0) | 2011.05.01 |
Silverlight4 Board 만들기 -5- (0) | 2011.05.01 |
Comments