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