ASP.NET 기초 강의실

시삽: 레드플러스 님 
게시판 이동:
 제목 : 31.13.1. 그룹 상세 정보 보기 : GroupView.ascx.cs
글번호: 218
작성자: 레드플러스
작성일: 2007/07/10 오후 6:04:00
조회수: 5061
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.ApplicationBlocks.Data;

public partial class GroupViewControl : System.Web.UI.UserControl
{
    private string _ConnectionString;//필드
    public string ConnectionString//속성
    {
        get { return _ConnectionString; }
    }
    public GroupViewControl()//생성자
    {
        _ConnectionString =
            ConfigurationManager.ConnectionStrings[
                "ConnectionString"].ConnectionString;
    }
  protected void Page_Load(object sender, EventArgs e)
  {
        if (!Page.IsPostBack)
        {
            DisplayData();    
        }
  }
    /// <summary>
    /// 넘겨져 온 UID값에 해당하는 그룹 정보를 읽어다 출력
    /// </summary>
    private void DisplayData()
    {
        // 그룹 정보 표시
        #region 그룹 정보 표시
        using (IDataReader objDr = SqlHelper.ExecuteReader(ConnectionString, CommandType.Text, "Select * From Groups Where UID = " + Request["UID"]))
        {
            while (objDr.Read())
            {
                txtDomainID.Text = objDr["DomainID"].ToString();
                txtName.Text = objDr["Name"].ToString();
                txtDescription.Text = objDr["Description"].ToString();
            }
            objDr.Close();
        }
        #endregion
        // 소속 사용자 출력
        #region 소속 사용자 출력
        using (IDataReader objDr = SqlHelper.ExecuteReader(ConnectionString, CommandType.Text, "Select UID, UserUID, DomainID, Name From Membership, Users Where Users.UID = Membership.UserUID And Membership.GroupUID = " + Request["UID"] + " Order By DomainID Asc"))
        {
            while (objDr.Read())
            {
                // 체크박스 리스트에 추가할 하나의 항목(Item) 생성/값대입
                ListItem li = new ListItem();
                li.Text = objDr["DomainID"].ToString()
                    + "(" + objDr["Name"].ToString() + ")";
                li.Value = objDr["UserUID"].ToString();
                this.lstUserID.Items.Add(li);//하나의 항목 추가
            }
            objDr.Close();
        }
        #endregion
        // 구성원 추가 드롭다운리스트 바인딩
        #region 구성원 추가 드롭다운리스트 바인딩
        using (IDataReader objDr = SqlHelper.ExecuteReader(ConnectionString, CommandType.Text, "Select Distinct UID, DomainID, Name From Users Where UID Not In (Select UserUID From Membership Where GroupUID = " + Request["UID"] + ") Order By DomainID Asc    "))
        {
            while (objDr.Read())
            {
                // 체크박스 리스트에 추가할 하나의 항목(Item) 생성/값대입
                ListItem li = new ListItem();
                li.Text = objDr["DomainID"].ToString()
                    + "(" + objDr["Name"].ToString() + ")";
                li.Value = objDr["UID"].ToString();
                this.lstDomainID.Items.Add(li);//드롭다운리스트에 하나의 항목 추가
            }
            objDr.Close();
        }
        #endregion
    }
    /// <summary>
    /// 프로필 수정
    /// </summary>
    protected void btnModify_Click(object sender, EventArgs e)
    {
        SqlHelper.ExecuteNonQuery(ConnectionString
            , CommandType.Text
            , String.Format(@"Update Domains Set DomainID='{0}',
                    Name='{1}', Description='{2}' Where UID = {3}"
                , txtDomainID.Text, txtName.Text, txtDescription.Text
                , Request["UID"])
        );
        Response.Redirect("GroupView.aspx?UID=" + Request["UID"]);
    }
    protected void btnDelete_Click(object sender, EventArgs e)
    {
        // 변수 선언부
        string strUserUID = "0";
        foreach (ListItem li in lstUserID.Items)
        {
            if (li.Selected)
            {
                strUserUID += ", " + li.Value;
            }
        }
        // 실행(삭제)
        SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.Text, "Delete Membership Where GroupUID = " + Request["UID"] + " And UserUID In(" + strUserUID + ")");
        // 이동
        Response.Redirect("GroupView.aspx?UID=" + Request["UID"]);
    }
    protected void btnAddUser_Click(object sender, EventArgs e)
    {
        // 저장
        SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.Text, "Insert Membership(GroupUID, UserUID) Values(" + Request["UID"] + "," + lstDomainID.SelectedValue + ")");
        // 이동
        Response.Redirect("GroupView.aspx?UID=" + Request["UID"]);
    }
    protected void btnDeleteGroup_Click(object sender, EventArgs e)
    {
        string s = txtDomainID.Text.ToLower();
        if (s == "administrators" || s == "users" || s == "guests" || s == "everyone")
        {
            string strJs = "<script>alert('관리 목적의 그룹은 삭제할 수 없습니다.');</script>";
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Error", strJs);
        }
        else
        {
            // 변수 선언부
            string strSql = "Delete Domains Where UID = " + Request["UID"] + " And Type = 'Group';";
            strSql += "Delete Membership Where GroupUID = " + Request["UID"];
            // 실행(삭제)
            SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.Text, strSql);
            // 이동
            Response.Redirect("GroupList.aspx");
        }
    }
}
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트


관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 32. 자주 사용되는 메서드를 클래스라이브러리 프로젝트로 포함 - 레드플러스 2007-06-26 5561
  31. 회원 가입 - 레드플러스 2007-06-22 6932
  31.1. 회원 가입 관련 테이블, 뷰, 저장 프로시저 구문 - 레드플러스 2007-06-22 7615
  31.2. ~/Web.config - 레드플러스 2007-06-22 7010
  31.2.3. DAAB : Microsoft.ApplicationBlocks.Data... Microsoft.ApplicationBlocks.Data(1).dll(32 KB) 레드플러스 2007-07-11 5408
  31.3. 회원 가입 페이지 : ~/Register.ascx - 레드플러스 2007-06-22 5789
  31.3.1. 회원 가입 페이지 : ~/Register.ascx.cs - 레드플러스 2007-06-22 5658
  31.4. 회원 가입 : 로그인 페이지 : Login.ascx - 레드플러스 2007-06-22 5546
  31.4. 회원 가입 : 로그인 페이지 : Login.ascx.cs - 레드플러스 2007-06-22 6282
  31.5. 회원 가입 : 회원 정보 표시 : LoginInfor.ascx - 레드플러스 2007-06-22 6172
  31.5.1. 회원 가입 : 회원 정보 표시 : LoginInfor.ascx.cs - 레드플러스 2007-06-22 4745
  31.6. 회원 가입 : 회원 정보 수정 및 탈퇴 페이지 : UserInfor.asc... - 레드플러스 2007-06-25 6907
  31.6. 회원 가입 : 회원 정보 수정 및 탈퇴 페이지 : UserInfor.asc... - 레드플러스 2007-06-25 6979
  31.7. (관리자 전용) 회원 전체 리스트 출력 : UserList.ascx - 레드플러스 2007-06-29 4717
  31.7.1. (관리자 전용) 회원 전체 리스트 출력 : UserList.ascx.c... - 레드플러스 2007-06-29 4890
  31.8. 회원 가입 : (관리자 전용) 회원 정보 변경 : UserView.ascx... - 레드플러스 2007-07-02 9301
  31.8.1. 회원 가입 : (관리자 전용) 회원 정보 변경 : UserView.as... - 레드플러스 2007-07-02 4627
  31.9. 회원 가입 : 로그인 환영 메시지 페이지 : Greetings.ascx - 레드플러스 2007-07-04 5693
  31.9.1. 회원 가입 : 로그인 환영 메시지 페이지 : Greetings.ascx... - 레드플러스 2007-07-04 4798
  31.10. 회원 가입 : (관리자)회원에게 그룹 권한 설정 : UserViewAdd... - 레드플러스 2007-07-05 4679
  31.10.1. 회원 가입 : (관리자)회원에게 그룹 권한 설정 : UserViewA... - 레드플러스 2007-07-05 4620
  31.11. NewGroup.ascx : 새로운 그룹(Roles) 추가 - 레드플러스 2007-07-06 4448
  31.11.1. NewGroup.ascx.cs : 새로운 그룹(Roles) 추가 - 레드플러스 2007-07-06 4433
  31.12. GroupList.ascx : 전체 그룹(Roles) 리스트 : 컨트롤 ... - 레드플러스 2007-07-06 4961
  31.13. 그룹 상세 정보 보기 : GroupView.ascx?UID={0} - 레드플러스 2007-07-10 4824
현재글 31.13.1. 그룹 상세 정보 보기 : GroupView.ascx.cs - 레드플러스 2007-07-10 5061
다음글 30. 기본형 게시판 만들기(3계층으로 분리하지 않음) - 레드플러스 2007-06-18 8144
 
손님 사용자 Anonymous (손님)
로그인 Home