• Daum
  • |
  • 카페
  • |
  • 테이블
  • |
  • 메일
  • |
  • 카페앱 설치
 
카페정보
카페 프로필 이미지
닷넷 (.NET) 프로그래머 모임
 
 
 
카페 게시글
ASP.NET 질문 리피터(Repeater) OnItemCommand 이벤트 리턴(자바 스크립트 구문 실행) 질문합니다 ㅠㅠ
햇님아슈슈 추천 0 조회 687 12.03.14 15:45 댓글 13
게시글 본문내용
 
다음검색
첨부된 파일
댓글
  • 12.03.14 16:46

    첫댓글 여기도 올리셨네용

    asp.net 서버컨트롤은 랜더링을 거쳐 클라이언트에 전달 되면
    ID값이 치환이 됩니다. 이는 브라우져상에서 소스보기로 확인 가능하고요.

    해당 변경된 ID를 랜더링될때 넘겨주고 싶을땐 컨트롤.ClientID 라는게 존재하고용.

    또. aspx 에서 처리할땐 <%= 컨트롤.ClientID %> 로 넘겨줍니다.

    랜더링 이후 자바스크립트로 해당 컨트롤에 접근하시고자 하시면 ClientID를 파악 후 자바스크립트로 찾아서 처리 하시면 되고요.

    수정 삭제 버튼 같은 경우 아예 없애버리는게 좋을테니... 바인딩 할때 Visible = false; 주면 아예 랜더링을 안하는걸로 기억합니다.

  • 작성자 12.03.14 17:01

    넵? 저는 다른 곳에는 안올렸었는데 ㅠㅠ..

    음... 제가 이해력이 안좋아서 그런지 무슨 말씀이신지 잘 모르겠습니다..

    제가 구현하고자 하는 것은 이미지 버튼을 눌렀을 때 서버 컨트롤로 가서 해당 서버 컨트롤이 실행이 된 후(OnCommand="Repeater1_OnItemCommand") 그 서버 컨트롤 안에서 자바스크립트 함수를 부르고 싶은데 ..
    string.Format("xxxxjavascript:aa('{0}', '{1}')", CommandName, Num); 이런 식으로요 ㅠㅠ

    죄송하지만 문외한인 저를 위해 한 번 더 설명해주시면 안될까요 ㅠㅠ? 열 번 이상 읽어봤는데도 잘 모르겠습니다..ㅜㅜ

  • 12.03.15 10:36

    설계된 UI가 헤깔리네요. 체크박스로 다량의 게시물을 일괄 삭제하고, 수정기능을 넣고자 하는것인지, 아니면 그냥 단일게시물을 수정 삭제하는것인가요? 단일건별 수정 삭제라면 체크박스가 무의미 한거 같고, 그렇다고 다량의 삭제 지원및 수정기능 지원이라고 보기엔 ui가 애매합니다.

  • 작성자 12.03.19 19:48

    같은 체크박스를 쓰지만 수정은 하나만 클릭해야 이벤트가 실행되도록 스크립트로 제어해주었구요~
    삭제는 다중 삭제가 가능하도록 해주었습니다~~!!

  • 12.03.19 22:13

    요점은 수정버튼을 누르면 해당 게시물 수정이 되고, 체크박스는 삭제기능을 위해 동작한다는 의미네요.
    서버에서 모두 처리하거나 클라이언트에서 처리하는거 모두 가능합니다. 선택의 문제입니다.
    서버 단에서 처리한다면
    1. 수정 버튼은 서버 이벤트로 타게 만들어 처리해야 겠네요
    2. 다중 삭제는 리피터를 루프돌면서 값을 확인해야 겠습니다.
    클라이언트에서 처리한다면
    1. 수정 버튼 클릭시 수정 url 호출or ajax 처리
    2. 다중 삭제시 아이디값을 파라미터 전송으로 삭제 url 호출 or ajax 처리 하면 됩니다.
    서버 처리는 예제가 간단하니 보여드릴수 있겠네요..

  • 12.03.15 11:42

    OnItemCommand 이벤트의 경우 해당 버튼을 클릭 했을때 발생되는 이벤트 입니다. 서버단에서 발생하는 이벤트로 이벤트 발생 후 자바스크립트를 클라이언트 소스 코드에 넣는 형태로 구현 하신게 된겁니다. 우선 이벤트를 onitemdatabound 이벤트로 바꾸시고 각각 행이 바운드 될때 위 소스 형태로 넣으시면 될듯 합니다. http://msdn.microsoft.com/ko-kr/library/system.web.ui.webcontrols.repeater.onitemdatabound.aspx <-- 이 링크 함 참고해 보시고, 구글에서 "repeater onitemdatabound" 로 검색 해보시면 샘플 많이 있습니다.

  • 작성자 12.03.19 19:49

    ㅠㅠ 어렵네요 닷넷.. 일러주신대로 찾아보겠습니다! 답변 감사드려요~~!!!

  • 12.03.15 12:55

    비슷한 질문을 훈스닷넷에서 봐서 같은분이신줄 알았네요.

    음 글쓰신분이 asp.net 의 이벤트 흐름에 대해 정확히 이해 하고 계신지 잘 모르겠네요...

    서버 컨트롤이 클릭되었을때 -> OnClientClick 이 자바스크립트 호출한 이후 -> 서버단에서 Click 이벤트를 처리하는데요...

    님께서 하시는건 포스트 백이 발생해서 서버 랜더링 끝나면 그때 다시 페이지가 열릴때 aa 를 호출하시겠다는건가요???
    그러면 해당 컨트롤의 Click이벤트에서 스크립트를 넣어주시면 되는데요.
    그게 객체가 this.Script... <--- 관련프로퍼티에 .Start... 뭐 있는데요.. 거기에 스크립트 그대로 넘겨주심 됩니당.

  • 작성자 12.03.19 19:51

    ㅠㅠ 제가 원래 닷넷에 대해 전혀 모르는데 이번에 개발을 하라고 들어와서 ㅠㅠ..
    당장 기본도 모르는데 해야하니 막막하더라구요 ㅠㅜ..ㅋㅋ 답변 감사합니다!
    개발자도 아니신데 정말 대단하셔요 ㅠㅠ!! 전 말처럼 쉽지 않네요 ㅠㅠㅋㅋ

  • 12.03.15 12:55

    제가 웹 개발자가 아니라 ^^;; 외우질 못했네용. ...

  • 12.03.15 13:04

    repeater 안에 서버컨트롤을 두고 나서 각각의 버튼에 대한 이벤트값을 추출하고자 한다면, repeater 의 OnItemCommand 를 사용해야 합니다. 이벤트의 파라미터에서 CommandSource 를 이용하여 객체로 형변환 한다음, 값을 추출하여 사용하시면 되겠습니다. msdn 에 자세히 나와 있네요. http://msdn.microsoft.com/ko-kr/library/system.web.ui.webcontrols.repeater.itemcommand.aspx

  • 12.03.15 13:13

    리피터를 이용한 체크박스로 수정 삭제 가능한 예제 라..... 사이트 하나 추천해 드릴게요. 약간 응용하시면 잘 하실 것 같네요. http://freemind.tistory.com/17

  • 작성자 12.03.19 19:52

    링크까지 달아주시고 ㅠㅠ 정말 감사합니다~~
    아.. ㅠㅠ 리스트 형식으로 보여줄 건데 GridView를 써야할 지 Repeater를 써야할 지 DataList를 써야할 지 아님 기타 등등.. 뭘 써야할 지 감이 안잡히네요 ㅠㅠ
    다들 저마다의 장점이 있는 것 같은데 ㅠㅠ..
    Repeater를 쓰고 싶은데 새로고침이라든지 버튼 여러 번 눌렀을 때 라든지에 대해 제어해줄 게 너무 많네요 ㅠㅠ
    GridView는 조금 단순한 반면에 Css를 많이 수정하지 못하고 ㅠㅠ 게다가 페이징 위치 수정이라든지.. ㅠㅠ 쉽지 않더라구요 ... 힝

최신목록