chore: 首次簽入 Thinkyu ASP.NET 專案

- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
2026-09-10 09:42:37 +08:00
commit 577060bc78
2496 changed files with 501389 additions and 0 deletions
@@ -0,0 +1,354 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/PopupForm.Master"
AutoEventWireup="true" CodeBehind="PickupMaterial.aspx.cs"
Inherits="Education.Forms.課程企劃.PickupMaterial" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<script type="text/javascript">
function checkInput() {
var result = true;
var names = [
$("#<%= txt教材名稱A.ClientID %>").val().trim(),
$("#<%= txt教材名稱B.ClientID %>").val().trim(),
$("#<%= txt教材名稱C.ClientID %>").val().trim()
];
if (names[0] == "" && names[1] == "" && names[2] == "") {
$("#msg教材A").css("display", "block");
result = false;
}
else {
$("#msg教材A").css("display", "none");
}
var scoreIds = [
[
"<%= txt符合訓練目標A.ClientID %>",
"<%= txt架構規劃完整性A.ClientID %>",
"<%= txt符合課程時數A.ClientID %>",
"<%= txt引起學習興趣A.ClientID %>",
"<%= txt未來工作參考運用A.ClientID %>"
],
[
"<%= txt符合訓練目標B.ClientID %>",
"<%= txt架構規劃完整性B.ClientID %>",
"<%= txt符合課程時數B.ClientID %>",
"<%= txt引起學習興趣B.ClientID %>",
"<%= txt未來工作參考運用B.ClientID %>"
],
[
"<%= txt符合訓練目標C.ClientID %>",
"<%= txt架構規劃完整性C.ClientID %>",
"<%= txt符合課程時數C.ClientID %>",
"<%= txt引起學習興趣C.ClientID %>",
"<%= txt未來工作參考運用C.ClientID %>"
]
];
var names2 = ["一", "二", "三"];
for (var m = 0; m < 3; m++) {
if (names[m] != "") {
for (var s = 0; s < 5; s++) {
var val = $("#" + scoreIds[m][s]).val().trim();
if (val == "" || isNaN(val) || parseInt(val) < 0 || parseInt(val) > 20) {
alert("請完整填寫教材" + names2[m] + "的評分(0~20)。");
result = false;
}
}
}
}
return result;
}
function calcTotal(idA, idB, idC, idD, idE, idTotal) {
var valA = parseInt($("#" + idA).val()) || 0;
var valB = parseInt($("#" + idB).val()) || 0;
var valC = parseInt($("#" + idC).val()) || 0;
var valD = parseInt($("#" + idD).val()) || 0;
var valE = parseInt($("#" + idE).val()) || 0;
$("#" + idTotal).text(valA + valB + valC + valD + valE);
}
function clearMaterial(id1, id2, id3, id4, id5, id6, id7) {
$("#" + id1).val("");
$("#" + id2).val("");
$("#" + id3).val("");
$("#" + id4).val("");
$("#" + id5).val("");
$("#" + id6).val("");
$("#" + id7).text("");
}
</script>
<style scoped>
.datainput .inputFull
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1"
runat="server">
<table>
<tr>
<td class="caption" style="width: 70px">
<asp:Label ID="Label9" runat="server" Text="課程企劃"></asp:Label>
</td>
<td class="datadisplay" style="width: 800px">
<asp:Label ID="lb課程企劃" runat="server"></asp:Label>
<asp:HiddenField ID="hf課程企劃ID" runat="server" />
</td>
</tr>
<tr>
<td class="caption">
<asp:Label ID="Label10" runat="server" Text="課程內容"></asp:Label>
</td>
<td class="datadisplay">
<asp:Label ID="lb課程內容" runat="server"></asp:Label>
<asp:HiddenField ID="hf課程序號" runat="server" />
</td>
</tr>
<tr>
<td colspan="2">
<table style="width: 100%; table-layout: fixed">
<tr>
<td style="width: 18rem">&nbsp;</td>
<td class="captionCenter" colspan="1" style="width: 33%">
<asp:Label ID="lb教材一" runat="server" Text="教材一"></asp:Label>
</td>
<td class="captionCenter" colspan="1" style="width: 33%">
<asp:Label ID="lb教材二" runat="server" Text="教材二"></asp:Label>
</td>
<td class="captionCenter" colspan="1" style="width: 33%">
<asp:Label ID="lb教材三" runat="server" Text="教材三"></asp:Label>
</td>
</tr>
<tr>
<td class="caption">
<asp:Label ID="Label14" runat="server" Text="教材名稱"></asp:Label>
</td>
<td class="datainput">
<asp:TextBox ID="txt教材名稱A" runat="server" CssClass="inputFull" MaxLength="100" ValidationGroup="save"></asp:TextBox>
<span id="msg教材A" class="ErrorMessage" style="display: none">請至少輸入一項教材名稱</span>
</td>
<td class="datainput">
<asp:TextBox ID="txt教材名稱B" runat="server" CssClass="inputFull" MaxLength="100" ValidationGroup="save"></asp:TextBox>
</td>
<td class="datainput">
<asp:TextBox ID="txt教材名稱C" runat="server" CssClass="inputFull" MaxLength="100" ValidationGroup="save"></asp:TextBox>
</td>
</tr>
<tr>
<td class="caption">
<asp:Label ID="Label17" runat="server" Text="教材設計符合訓練目標"></asp:Label>
</td>
<td class="datainput">
<asp:TextBox ID="txt符合訓練目標A" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標A.ClientID %>','<%= txt架構規劃完整性A.ClientID %>','<%= txt符合課程時數A.ClientID %>','<%= txt引起學習興趣A.ClientID %>','<%= txt未來工作參考運用A.ClientID %>','<%= lb合計A.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv符合訓練目標A" runat="server" ControlToValidate="txt符合訓練目標A"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
<td class="datainput">
<asp:TextBox ID="txt符合訓練目標B" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標B.ClientID %>','<%= txt架構規劃完整性B.ClientID %>','<%= txt符合課程時數B.ClientID %>','<%= txt引起學習興趣B.ClientID %>','<%= txt未來工作參考運用B.ClientID %>','<%= lb合計B.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv符合訓練目標B" runat="server" ControlToValidate="txt符合訓練目標B"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
<td class="datainput">
<asp:TextBox ID="txt符合訓練目標C" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標C.ClientID %>','<%= txt架構規劃完整性C.ClientID %>','<%= txt符合課程時數C.ClientID %>','<%= txt引起學習興趣C.ClientID %>','<%= txt未來工作參考運用C.ClientID %>','<%= lb合計C.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv符合訓練目標C" runat="server" ControlToValidate="txt符合訓練目標C"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
</tr>
<tr>
<td class="caption">
<asp:Label ID="Label18" runat="server" Text="教材設計整體架構規劃完整性"></asp:Label>
</td>
<td class="datainput">
<asp:TextBox ID="txt架構規劃完整性A" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標A.ClientID %>','<%= txt架構規劃完整性A.ClientID %>','<%= txt符合課程時數A.ClientID %>','<%= txt引起學習興趣A.ClientID %>','<%= txt未來工作參考運用A.ClientID %>','<%= lb合計A.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv架構規劃完整性A" runat="server" ControlToValidate="txt架構規劃完整性A"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
<td class="datainput">
<asp:TextBox ID="txt架構規劃完整性B" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標B.ClientID %>','<%= txt架構規劃完整性B.ClientID %>','<%= txt符合課程時數B.ClientID %>','<%= txt引起學習興趣B.ClientID %>','<%= txt未來工作參考運用B.ClientID %>','<%= lb合計B.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv架構規劃完整性B" runat="server" ControlToValidate="txt架構規劃完整性B"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
<td class="datainput">
<asp:TextBox ID="txt架構規劃完整性C" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標C.ClientID %>','<%= txt架構規劃完整性C.ClientID %>','<%= txt符合課程時數C.ClientID %>','<%= txt引起學習興趣C.ClientID %>','<%= txt未來工作參考運用C.ClientID %>','<%= lb合計C.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv架構規劃完整性C" runat="server" ControlToValidate="txt架構規劃完整性C"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
</tr>
<tr>
<td class="caption">
<asp:Label ID="Label19" runat="server" Text="教材設計符合課程規劃時數"></asp:Label>
</td>
<td class="datainput">
<asp:TextBox ID="txt符合課程時數A" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標A.ClientID %>','<%= txt架構規劃完整性A.ClientID %>','<%= txt符合課程時數A.ClientID %>','<%= txt引起學習興趣A.ClientID %>','<%= txt未來工作參考運用A.ClientID %>','<%= lb合計A.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv符合課程時數A" runat="server" ControlToValidate="txt符合課程時數A"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
<td class="datainput">
<asp:TextBox ID="txt符合課程時數B" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標B.ClientID %>','<%= txt架構規劃完整性B.ClientID %>','<%= txt符合課程時數B.ClientID %>','<%= txt引起學習興趣B.ClientID %>','<%= txt未來工作參考運用B.ClientID %>','<%= lb合計B.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv符合課程時數B" runat="server" ControlToValidate="txt符合課程時數B"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
<td class="datainput">
<asp:TextBox ID="txt符合課程時數C" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標C.ClientID %>','<%= txt架構規劃完整性C.ClientID %>','<%= txt符合課程時數C.ClientID %>','<%= txt引起學習興趣C.ClientID %>','<%= txt未來工作參考運用C.ClientID %>','<%= lb合計C.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv符合課程時數C" runat="server" ControlToValidate="txt符合課程時數C"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
</tr>
<tr>
<td class="caption">
<asp:Label ID="Label20" runat="server" Text="教學方法能引起學員的學習興趣"></asp:Label>
</td>
<td class="datainput">
<asp:TextBox ID="txt引起學習興趣A" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標A.ClientID %>','<%= txt架構規劃完整性A.ClientID %>','<%= txt符合課程時數A.ClientID %>','<%= txt引起學習興趣A.ClientID %>','<%= txt未來工作參考運用A.ClientID %>','<%= lb合計A.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv引起學習興趣A" runat="server" ControlToValidate="txt引起學習興趣A"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
<td class="datainput">
<asp:TextBox ID="txt引起學習興趣B" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標B.ClientID %>','<%= txt架構規劃完整性B.ClientID %>','<%= txt符合課程時數B.ClientID %>','<%= txt引起學習興趣B.ClientID %>','<%= txt未來工作參考運用B.ClientID %>','<%= lb合計B.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv引起學習興趣B" runat="server" ControlToValidate="txt引起學習興趣B"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
<td class="datainput">
<asp:TextBox ID="txt引起學習興趣C" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標C.ClientID %>','<%= txt架構規劃完整性C.ClientID %>','<%= txt符合課程時數C.ClientID %>','<%= txt引起學習興趣C.ClientID %>','<%= txt未來工作參考運用C.ClientID %>','<%= lb合計C.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv引起學習興趣C" runat="server" ControlToValidate="txt引起學習興趣C"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
</tr>
<tr>
<td class="caption">
<asp:Label ID="Label21" runat="server" Text="教材設計可做為學員未來工作參考/運用"></asp:Label>
</td>
<td class="datainput">
<asp:TextBox ID="txt未來工作參考運用A" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標A.ClientID %>','<%= txt架構規劃完整性A.ClientID %>','<%= txt符合課程時數A.ClientID %>','<%= txt引起學習興趣A.ClientID %>','<%= txt未來工作參考運用A.ClientID %>','<%= lb合計A.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv未來工作參考運用A" runat="server" ControlToValidate="txt未來工作參考運用A"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
<td class="datainput">
<asp:TextBox ID="txt未來工作參考運用B" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標B.ClientID %>','<%= txt架構規劃完整性B.ClientID %>','<%= txt符合課程時數B.ClientID %>','<%= txt引起學習興趣B.ClientID %>','<%= txt未來工作參考運用B.ClientID %>','<%= lb合計B.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv未來工作參考運用B" runat="server" ControlToValidate="txt未來工作參考運用B"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
<td class="datainput">
<asp:TextBox ID="txt未來工作參考運用C" runat="server" CssClass="inputFull" MaxLength="2" ValidationGroup="save"
onkeyup="calcTotal('<%= txt符合訓練目標C.ClientID %>','<%= txt架構規劃完整性C.ClientID %>','<%= txt符合課程時數C.ClientID %>','<%= txt引起學習興趣C.ClientID %>','<%= txt未來工作參考運用C.ClientID %>','<%= lb合計C.ClientID %>')">
</asp:TextBox>
<asp:RangeValidator ID="rgv未來工作參考運用C" runat="server" ControlToValidate="txt未來工作參考運用C"
MinimumValue="0" MaximumValue="20" Type="Integer" Display="Dynamic" ErrorMessage="0~20"
ValidationGroup="save">
</asp:RangeValidator>
</td>
</tr>
<tr>
<td class="caption">
<asp:Label ID="Label22" runat="server" Text="合計 100%"></asp:Label>
</td>
<td class="datadisplay">
<asp:Label ID="lb合計A" runat="server"></asp:Label>
</td>
<td class="datadisplay">
<asp:Label ID="lb合計B" runat="server"></asp:Label>
</td>
<td class="datadisplay">
<asp:Label ID="lb合計C" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="caption"></td>
<td class="datadisplay">
<asp:LinkButton ID="btnClearA" runat="server"></asp:LinkButton>
</td>
<td class="datadisplay">
<asp:LinkButton ID="btnClearB" runat="server"></asp:LinkButton>
</td>
<td class="datadisplay">
<asp:LinkButton ID="btnClearC" runat="server"></asp:LinkButton>
</td>
</tr>
<tr>
<td class="caption">
<asp:Label ID="Label25" runat="server" Text="總評"></asp:Label>
</td>
<td class="datainput" colspan="3">
<asp:TextBox ID="txt總評" runat="server" CssClass="inputFull" Rows="5" TextMode="MultiLine"></asp:TextBox>
</td>
</tr>
<tr>
<td class="caption">
<asp:Label ID="Label26" runat="server" Text="備註"></asp:Label>
</td>
<td class="datainput" colspan="3">
<asp:TextBox ID="txt備註" runat="server" CssClass="inputFull" Rows="5" TextMode="MultiLine"></asp:TextBox>
</td>
</tr>
<tr>
<td class="caption">&nbsp;</td>
<td class="datainput" colspan="3">
<asp:LinkButton ID="btnSave" runat="server" CssClass="button blue80" OnClick="btnSave_Click"
OnClientClick="return checkInput();"
ValidationGroup="save">
儲存</asp:LinkButton>
</td>
</tr>
</table>
</td>
</tr>
</table>
</asp:Content>