Files
thinkyu/教育訓練系統/Web/Forms/課程企劃/PickupMaterial.aspx.cs
T
sryang 577060bc78 chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
2026-09-10 09:42:37 +08:00

356 lines
16 KiB
C#

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Linq;
using WebLib;
namespace Education.Forms.課程企劃
{
public partial class PickupMaterial : FormBase
{
private DAC_訓練課程企劃 Dao課程企劃;
private DAC_訓練課程內容 Dao課程內容;
private DAC_教材遴選 Dao教材遴選;
private int 課程企劃ID;
private int 課程序號;
protected bool 可異動;
protected void Page_Load(object sender, EventArgs e)
{
FunctionName = "訓練課程企劃書 >> 訓練課程內容 >> 教材評選";
Title = FunctionName;
if (!IsPostBack)
{
hf課程企劃ID.Value = Request["id"];
hf課程序號.Value = Request["class"];
}
課程企劃ID = DAC.GetInt32(hf課程企劃ID.Value);
課程序號 = DAC.GetInt32(hf課程序號.Value);
可異動 = Dao表單簽核主檔.表單可異動("課程企劃", String.Format("{0}", 課程企劃ID));
Dao課程企劃 = new DAC_訓練課程企劃(conn);
Dao課程內容 = new DAC_訓練課程內容(conn);
Dao教材遴選 = new DAC_教材遴選(conn);
btnClearA.OnClientClick = String.Format("clearMaterial(\"{0}\", [{1}], \"{2}\"); return false;",
txt教材名稱A.ClientID, Get評選下拉ClientIDs("A"), btnClearA.ClientID);
btnClearB.OnClientClick = String.Format("clearMaterial(\"{0}\", [{1}], \"{2}\"); return false;",
txt教材名稱B.ClientID, Get評選下拉ClientIDs("B"), btnClearB.ClientID);
btnClearC.OnClientClick = String.Format("clearMaterial(\"{0}\", [{1}], \"{2}\"); return false;",
txt教材名稱C.ClientID, Get評選下拉ClientIDs("C"), btnClearC.ClientID);
if (!IsPostBack)
{
填入評選下拉();
UpdateUI();
}
UIControl();
(Master as PopupForm).RefreshOpener = true;
}
private string Get評選下拉ClientIDs(string 教材別)
{
string[] ids = new string[]
{
"\"" + 訓練目標相符(教材別).ClientID + "\"",
"\"" + 參訓對象符合(教材別).ClientID + "\"",
"\"" + 課程大綱相符(教材別).ClientID + "\"",
"\"" + 內容正確適切(教材別).ClientID + "\"",
"\"" + 學員理解應用(教材別).ClientID + "\"",
"\"" + 使用方式清楚(教材別).ClientID + "\"",
"\"" + 評選結果(教材別).ClientID + "\""
};
return String.Join(",", ids);
}
private void 填入評選下拉()
{
DAC_教材評選選項 選項 = new DAC_教材評選選項();
foreach (string in new[] { "A", "B", "C" })
{
填入下拉(訓練目標相符(), 選項.Select評選項目ForDropDown());
填入下拉(參訓對象符合(), 選項.Select評選項目ForDropDown());
填入下拉(課程大綱相符(), 選項.Select評選項目ForDropDown());
填入下拉(內容正確適切(), 選項.Select評選項目ForDropDown());
填入下拉(學員理解應用(), 選項.Select評選項目ForDropDown());
填入下拉(使用方式清楚(), 選項.Select評選項目ForDropDown());
填入下拉(評選結果(), 選項.Select評選結果ForDropDown());
}
}
private void 填入下拉(DropDownList ddl, NameValueList list)
{
ddl.DataSource = list;
ddl.DataTextField = "Name";
ddl.DataValueField = "Value";
ddl.DataBind();
}
private DropDownList 訓練目標相符(string 教材別)
{
return 教材別 == "A" ? ddl訓練目標相符A : 教材別 == "B" ? ddl訓練目標相符B : ddl訓練目標相符C;
}
private DropDownList 參訓對象符合(string 教材別)
{
return 教材別 == "A" ? ddl參訓對象符合A : 教材別 == "B" ? ddl參訓對象符合B : ddl參訓對象符合C;
}
private DropDownList 課程大綱相符(string 教材別)
{
return 教材別 == "A" ? ddl課程大綱相符A : 教材別 == "B" ? ddl課程大綱相符B : ddl課程大綱相符C;
}
private DropDownList 內容正確適切(string 教材別)
{
return 教材別 == "A" ? ddl內容正確適切A : 教材別 == "B" ? ddl內容正確適切B : ddl內容正確適切C;
}
private DropDownList 學員理解應用(string 教材別)
{
return 教材別 == "A" ? ddl學員理解應用A : 教材別 == "B" ? ddl學員理解應用B : ddl學員理解應用C;
}
private DropDownList 使用方式清楚(string 教材別)
{
return 教材別 == "A" ? ddl使用方式清楚A : 教材別 == "B" ? ddl使用方式清楚B : ddl使用方式清楚C;
}
private DropDownList 評選結果(string 教材別)
{
return 教材別 == "A" ? ddl評選結果A : 教材別 == "B" ? ddl評選結果B : ddl評選結果C;
}
private void UIControl()
{
btnSave.Visible = 可異動;
btnClearA.Visible = 可異動;
btnClearB.Visible = 可異動;
btnClearC.Visible = 可異動;
txt教材名稱A.Enabled = 可異動;
txt教材名稱B.Enabled = 可異動;
txt教材名稱C.Enabled = 可異動;
foreach (string in new[] { "A", "B", "C" })
{
訓練目標相符().Enabled = 可異動;
參訓對象符合().Enabled = 可異動;
課程大綱相符().Enabled = 可異動;
內容正確適切().Enabled = 可異動;
學員理解應用().Enabled = 可異動;
使用方式清楚().Enabled = 可異動;
評選結果().Enabled = 可異動;
}
txt備註.Enabled = 可異動;
}
private void UpdateUI()
{
訓練課程企劃List v1 = Dao課程企劃.SelectOne(課程企劃ID);
訓練課程內容List v2 = Dao課程內容.SelectOne(課程企劃ID, 課程序號);
教材遴選List v3 = Dao教材遴選.SelectOne(課程企劃ID, 課程序號);
if (v1.Count > 0)
{
lb課程企劃.Text = String.Format("[{0}] {1}", v1[0].顯示編號, v1[0].訓練名稱);
}
if (v2.Count > 0)
{
lb課程內容.Text = String.Format("[{0}] {1}", v2[0].節次, v2[0].課程名稱);
}
foreach (string in new[] { "A", "B", "C" })
{
string 名稱 = == "A" ? "一" : == "B" ? "二" : "三";
( == "A" ? txt教材名稱A : == "B" ? txt教材名稱B : txt教材名稱C).Text = "";
訓練目標相符().SelectedValue = "";
參訓對象符合().SelectedValue = "";
課程大綱相符().SelectedValue = "";
內容正確適切().SelectedValue = "";
學員理解應用().SelectedValue = "";
使用方式清楚().SelectedValue = "";
評選結果().SelectedValue = "";
}
txt備註.Text = "";
if (v3.Count > 0)
{
if (!String.IsNullOrEmpty(v3[0].教材名稱_A))
{
txt教材名稱A.Text = v3[0].教材名稱_A;
訓練目標相符("A").SelectedValue = v3[0].訓練目標相符_A;
參訓對象符合("A").SelectedValue = v3[0].參訓對象符合_A;
課程大綱相符("A").SelectedValue = v3[0].課程大綱相符_A;
內容正確適切("A").SelectedValue = v3[0].內容正確適切_A;
學員理解應用("A").SelectedValue = v3[0].學員理解應用_A;
使用方式清楚("A").SelectedValue = v3[0].使用方式清楚_A;
評選結果("A").SelectedValue = v3[0].評選結果_A;
}
if (!String.IsNullOrEmpty(v3[0].教材名稱_B))
{
txt教材名稱B.Text = v3[0].教材名稱_B;
訓練目標相符("B").SelectedValue = v3[0].訓練目標相符_B;
參訓對象符合("B").SelectedValue = v3[0].參訓對象符合_B;
課程大綱相符("B").SelectedValue = v3[0].課程大綱相符_B;
內容正確適切("B").SelectedValue = v3[0].內容正確適切_B;
學員理解應用("B").SelectedValue = v3[0].學員理解應用_B;
使用方式清楚("B").SelectedValue = v3[0].使用方式清楚_B;
評選結果("B").SelectedValue = v3[0].評選結果_B;
}
if (!String.IsNullOrEmpty(v3[0].教材名稱_C))
{
txt教材名稱C.Text = v3[0].教材名稱_C;
訓練目標相符("C").SelectedValue = v3[0].訓練目標相符_C;
參訓對象符合("C").SelectedValue = v3[0].參訓對象符合_C;
課程大綱相符("C").SelectedValue = v3[0].課程大綱相符_C;
內容正確適切("C").SelectedValue = v3[0].內容正確適切_C;
學員理解應用("C").SelectedValue = v3[0].學員理解應用_C;
使用方式清楚("C").SelectedValue = v3[0].使用方式清楚_C;
評選結果("C").SelectedValue = v3[0].評選結果_C;
}
txt備註.Text = v3[0].備註;
}
}
private bool Validate評選()
{
string[] 教材名稱 = { txt教材名稱A.Text.Trim(), txt教材名稱B.Text.Trim(), txt教材名稱C.Text.Trim() };
string[] 名稱 = { "一", "二", "三" };
for (int i = 0; i < 3; i++)
{
if (String.IsNullOrEmpty(教材名稱[i]))
continue;
string = i == 0 ? "A" : i == 1 ? "B" : "C";
if (String.IsNullOrEmpty(訓練目標相符().SelectedValue)
|| String.IsNullOrEmpty(參訓對象符合().SelectedValue)
|| String.IsNullOrEmpty(課程大綱相符().SelectedValue)
|| String.IsNullOrEmpty(內容正確適切().SelectedValue)
|| String.IsNullOrEmpty(學員理解應用().SelectedValue)
|| String.IsNullOrEmpty(使用方式清楚().SelectedValue)
|| String.IsNullOrEmpty(評選結果().SelectedValue))
{
ClientShowMessage(String.Format("請完整填寫教材{0}的評選項目與評選結果。", 名稱[i]));
return false;
}
}
return true;
}
protected void btnSave_Click(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(txt教材名稱A.Text.Trim())
&& String.IsNullOrEmpty(txt教材名稱B.Text.Trim())
&& String.IsNullOrEmpty(txt教材名稱C.Text.Trim()))
{
ClientShowMessage("請至少輸入一項教材名稱。");
return;
}
if (!Validate評選())
return;
教材遴選Item item = Dao教材遴選.SelectOne(課程企劃ID, 課程序號).FirstOrDefault();
if (item == null)
{
item = new 教材遴選Item()
{
課程企劃編號 = 課程企劃ID,
課程序號 = 課程序號,
教材名稱_A = txt教材名稱A.Text,
訓練目標相符_A = Get選擇值(訓練目標相符("A")),
參訓對象符合_A = Get選擇值(參訓對象符合("A")),
課程大綱相符_A = Get選擇值(課程大綱相符("A")),
內容正確適切_A = Get選擇值(內容正確適切("A")),
學員理解應用_A = Get選擇值(學員理解應用("A")),
使用方式清楚_A = Get選擇值(使用方式清楚("A")),
評選結果_A = Get選擇值(評選結果("A")),
教材名稱_B = txt教材名稱B.Text,
訓練目標相符_B = Get選擇值(訓練目標相符("B")),
參訓對象符合_B = Get選擇值(參訓對象符合("B")),
課程大綱相符_B = Get選擇值(課程大綱相符("B")),
內容正確適切_B = Get選擇值(內容正確適切("B")),
學員理解應用_B = Get選擇值(學員理解應用("B")),
使用方式清楚_B = Get選擇值(使用方式清楚("B")),
評選結果_B = Get選擇值(評選結果("B")),
教材名稱_C = txt教材名稱C.Text,
訓練目標相符_C = Get選擇值(訓練目標相符("C")),
參訓對象符合_C = Get選擇值(參訓對象符合("C")),
課程大綱相符_C = Get選擇值(課程大綱相符("C")),
內容正確適切_C = Get選擇值(內容正確適切("C")),
學員理解應用_C = Get選擇值(學員理解應用("C")),
使用方式清楚_C = Get選擇值(使用方式清楚("C")),
評選結果_C = Get選擇值(評選結果("C")),
備註 = txt備註.Text
};
Dao教材遴選.InsertOne(item);
}
else
{
item.教材名稱_A = txt教材名稱A.Text;
item.訓練目標相符_A = Get選擇值(訓練目標相符("A"));
item.參訓對象符合_A = Get選擇值(參訓對象符合("A"));
item.課程大綱相符_A = Get選擇值(課程大綱相符("A"));
item.內容正確適切_A = Get選擇值(內容正確適切("A"));
item.學員理解應用_A = Get選擇值(學員理解應用("A"));
item.使用方式清楚_A = Get選擇值(使用方式清楚("A"));
item.評選結果_A = Get選擇值(評選結果("A"));
item.教材名稱_B = txt教材名稱B.Text;
item.訓練目標相符_B = Get選擇值(訓練目標相符("B"));
item.參訓對象符合_B = Get選擇值(參訓對象符合("B"));
item.課程大綱相符_B = Get選擇值(課程大綱相符("B"));
item.內容正確適切_B = Get選擇值(內容正確適切("B"));
item.學員理解應用_B = Get選擇值(學員理解應用("B"));
item.使用方式清楚_B = Get選擇值(使用方式清楚("B"));
item.評選結果_B = Get選擇值(評選結果("B"));
item.教材名稱_C = txt教材名稱C.Text;
item.訓練目標相符_C = Get選擇值(訓練目標相符("C"));
item.參訓對象符合_C = Get選擇值(參訓對象符合("C"));
item.課程大綱相符_C = Get選擇值(課程大綱相符("C"));
item.內容正確適切_C = Get選擇值(內容正確適切("C"));
item.學員理解應用_C = Get選擇值(學員理解應用("C"));
item.使用方式清楚_C = Get選擇值(使用方式清楚("C"));
item.評選結果_C = Get選擇值(評選結果("C"));
item.備註 = txt備註.Text;
Dao教材遴選.UpdateOne(item);
}
UpdateUI();
ClientShowMessage("儲存成功!");
}
private string Get選擇值(DropDownList ddl)
{
return String.IsNullOrEmpty(ddl.SelectedValue) ? null : ddl.SelectedValue;
}
}
}