제목 : 31.13.1. 그룹 상세 정보 보기 : GroupView.ascx.cs
    
    
        
            
                | 글번호: |  | 218 | 
            
                | 작성자: |  | 레드플러스 | 
            
                | 작성일: |  | 2007/07/10 오후 6:04:00 | 
            
            
                | 조회수: |  | 6404 | 
            
        
     
 
    
	
	
    
	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");
        }
    }
}