using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using WebLib; namespace Education.Forms.課程企劃 { public partial class PickupPeople : FormBase { private int 課程ID; private string 課程別; private DAC_RASN DaoRASN; private DAC_訓練課程企劃 Dao課程企劃; private DAC_訓練課程計畫別 Dao訓練課程計畫別; private DAC_數位課程 Dao數位課程; private DAC_數位課程計畫別 Dao數位課程計畫別; private DAC_數位課程觀看紀錄 Dao數位課程觀看紀錄; private bool 可異動; protected void Page_Load(object sender, EventArgs e) { FunctionName = "訓練課程企劃書 >> 訓練對象挑選"; Title = FunctionName; if (!IsPostBack) { hf編號.Value = Request["id"]; hf課程別.Value = Request["type"]; } 課程ID = DAC.GetInt32(Request["id"]); 課程別 = DAC.GetString(hf課程別.Value); DaoRASN = new DAC_RASN(conn); Dao課程企劃 = new DAC_訓練課程企劃(conn); Dao訓練課程計畫別 = new DAC_訓練課程計畫別(conn); Dao數位課程 = new DAC_數位課程(conn); Dao數位課程計畫別 = new DAC_數位課程計畫別(conn); Dao數位課程觀看紀錄 = new DAC_數位課程觀看紀錄(conn); if (!IsPostBack) { if (課程別 == "course") { lbTypeLabel.Text = "訓練課程企劃"; 訓練課程企劃List v1 = Dao課程企劃.SelectOne(課程ID); if (v1.Count > 0) { lb課程企劃.Text = String.Format("[{0}] {1}", v1[0].顯示編號, v1[0].訓練名稱); } ddl計畫.DataSource = Dao訓練課程計畫別.Select(課程ID); ddl計畫.DataTextField = "BPPYM"; ddl計畫.DataValueField = "BPPYN"; ddl計畫.DataBind(); } else if (課程別 == "digital") { lbTypeLabel.Text = "數位課程"; 數位課程List v1 = Dao數位課程.SelectOne(課程ID); if (v1.Count > 0) { lb課程企劃.Text = String.Format("[{0:000000}] {1}", 課程ID, v1[0].課程名稱); } ddl計畫.DataSource = Dao數位課程計畫別.Select(課程ID); ddl計畫.DataTextField = "BPPYM"; ddl計畫.DataValueField = "BPPYN"; ddl計畫.DataBind(); //pnl選修人員.Visible = false; btnAdd2.Visible = false; btnAdd1.Text = "加入訓練對象"; lbPeople.Text = "已加入訓練對象"; } RefreshUI(); } if (IsPostBack) { gv必修人員.DataBind(); gv選修人員.DataBind(); } UIControl(); ScriptManager.RegisterStartupScript(Page, Page.GetType(), "start", @" var cbBSSelectAll = document.getElementById(""cbBSSelectAll""); if (cbBSSelectAll) { cbBSSelectAll.onchange = function () { var BSSelect = document.getElementsByName(""cbBSSelect""); for (i = 0; i < BSSelect.length; i++) { BSSelect.item(i).checked = this.checked; } } } var cbSSSelectAll = document.getElementById(""cbSSSelectAll""); if (cbSSSelectAll) { cbSSSelectAll.onchange = function () { var BSSelect = document.getElementsByName(""cbSSSelect""); for (i = 0; i < BSSelect.length; i++) { BSSelect.item(i).checked = this.checked; } } } var btnRemoveBS = document.getElementById(""" + btnRemoveBS.ClientID + @"""); if (btnRemoveBS) { btnRemoveBS.onclick = function () { if (!confirm(""是否確定移除勾選的必修人員?"")) return false; var BSValue = """"; var BSSelect = document.getElementsByName(""cbBSSelect""); for (i = 0; i < BSSelect.length; i++) { if (BSSelect.item(i).checked) BSValue += BSSelect.item(i).value + ""|""; } document.getElementById(""" + hfBSChecked.ClientID + @""").value = BSValue; } } var btnRemoveSS = document.getElementById(""" + btnRemoveSS.ClientID + @"""); if (btnRemoveSS) { btnRemoveSS.onclick = function () { if (!confirm(""是否確定取消勾選的選修人員?"")) return false; var SSValue = """"; var SSSelect = document.getElementsByName(""cbSSSelect""); for (i = 0; i < SSSelect.length; i++) { if (SSSelect.item(i).checked) SSValue += SSSelect.item(i).value + ""|""; } document.getElementById(""" + hfSSChecked.ClientID + @""").value = SSValue; } }", true); } private void UIControl() { // 可異動 = Dao表單簽核主檔.表單可異動("課程企劃", 課程ID.ToString()); 可異動 = true; btnAdd1.Visible = 可異動; btnAdd2.Visible = 可異動; btnRemoveBS.Visible = 可異動; btnRemoveSS.Visible = 可異動; } private void RefreshUI() { if (課程別 == "course") { cbl已加入必修人員.DataSource = Dao課程報名.Select必修學員(課程ID); cbl已加入選修人員.DataSource = Dao課程報名.Select選修學員(課程ID); } else if (課程別 == "digital") { cbl已加入必修人員.DataSource = Dao數位課程觀看紀錄.Select必修學員(課程ID); } else return; cbl已加入必修人員.DataTextField = "學員姓名"; cbl已加入必修人員.DataValueField = "學員編號"; cbl已加入必修人員.DataBind(); cbl已加入選修人員.DataTextField = "學員姓名"; cbl已加入選修人員.DataValueField = "學員編號"; cbl已加入選修人員.DataBind(); gv必修人員.DataBind(); gv選修人員.DataBind(); } protected void btnSelectPeople_Click(object sender, EventArgs e) { cbl可加入人員.DataSource = DaoRASN.Select專案人員(ddl計畫.SelectedValue, CompanyId); cbl可加入人員.DataTextField = "Name"; cbl可加入人員.DataValueField = "Value"; cbl可加入人員.DataBind(); Check可加入人員(true); } private void Check可加入人員(bool selected) { foreach (ListItem item in cbl可加入人員.Items) { item.Selected = selected; } } protected void btnCheckAll_Click(object sender, EventArgs e) { Check可加入人員(true); } protected void btnCheckNone_Click(object sender, EventArgs e) { Check可加入人員(false); } protected void btnAdd_Click(object sender, EventArgs e) { foreach (ListItem item in cbl可加入人員.Items) { if (item.Selected) { if (課程別 == "course") Dao課程報名.必修(item.Value, 課程ID, UserId); else if (課程別 == "digital") Dao數位課程觀看紀錄.報名(課程ID, item.Value, UserId); } } RefreshUI(); } protected void btnAdd2_Click(object sender, EventArgs e) { foreach (ListItem item in cbl可加入人員.Items) { if (item.Selected) { if (課程別 == "course") Dao課程報名.選修(item.Value, 課程ID, UserId); } } RefreshUI(); } /* protected void btnRemove_Click(object sender, EventArgs e) { foreach (ListItem item in cbl已加入必修人員.Items) { if (item.Selected) { if (課程別 == "course") Dao課程報名.取消必修(item.Value, 課程ID, UserId); else if (課程別 == "digital") Dao數位課程觀看紀錄.取消報名(課程ID, item.Value); } } RefreshUI(); } protected void btnRemove2_Click(object sender, EventArgs e) { foreach (ListItem item in cbl已加入選修人員.Items) { if (item.Selected) { if (課程別 == "course") Dao課程報名.取消選修(item.Value, 課程ID, UserId); } } RefreshUI(); } */ // 移除必修人員 protected void btnRemoveBS_Click(object sender, EventArgs e) { string[] IDs = hfBSChecked.Value.Split('|'); foreach (string id in IDs) { if (id.Length > 0) { if (課程別 == "course") Dao課程報名.取消必修(id, 課程ID, UserId); else if (課程別 == "digital") Dao數位課程觀看紀錄.取消報名(課程ID, id); } } RefreshUI(); } // 移除選修人員 protected void btnRemoveSS_Click(object sender, EventArgs e) { string[] IDs = hfSSChecked.Value.Split('|'); foreach (string id in IDs) { if (id.Length > 0) { if (課程別 == "course") Dao課程報名.取消選修(id, 課程ID, UserId); } } RefreshUI(); } } }