chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -0,0 +1,217 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using WebLib;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Education.Forms.領據系統
|
||||
{
|
||||
public partial class 非講師 : FormBase
|
||||
{
|
||||
private DAC_非講師 Dao非講師;
|
||||
|
||||
private bool canExport = false;
|
||||
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
Dao非講師 = new DAC_非講師(conn);
|
||||
}
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
FunctionName = "非講師/名人基本資料";
|
||||
|
||||
// 設定 Form 的 enctype 為 multipart/form-data,才能上傳檔案
|
||||
Page.Form.Attributes["enctype"] = "multipart/form-data";
|
||||
|
||||
Form_View = fv非講師;
|
||||
Grid_View = gv非講師;
|
||||
FormView_DataSource = ds非講師Form;
|
||||
GridView_DataSource = ds非講師Grid;
|
||||
|
||||
AddTabButton(MultiView1, 0, btnTab1);
|
||||
AddTabButton(MultiView1, 1, btnTab2);
|
||||
AddTabButton(MultiView1, 2, btnTab3);
|
||||
AddTabButton(MultiView1, 3, btnTab4);
|
||||
|
||||
RegisterPostbackTrigger(btnExport);
|
||||
RegisterPostbackTrigger(btn下載範本);
|
||||
RegisterPostbackTrigger(btn匯入);
|
||||
RegisterPostbackTrigger(btn上傳檔案);
|
||||
|
||||
InitJSVar();
|
||||
GetRights();
|
||||
|
||||
if (!IsPostBack)
|
||||
{
|
||||
ActivateTab(MultiView1, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
Grid_View.DataBind();
|
||||
Form_View.DataBind();
|
||||
}
|
||||
}
|
||||
|
||||
protected void GetRights()
|
||||
{
|
||||
canExport = new MWEB().CheckRight(ProgramID.匯出基本資料, WRightName.Execute, UserId);
|
||||
hfCanExport.Value = (canExport ? "Y" : "");
|
||||
}
|
||||
|
||||
protected void btnSearch_Click(object sender, EventArgs e)
|
||||
{
|
||||
Grid_View.PageIndex = 0;
|
||||
Grid_View.DataBind();
|
||||
}
|
||||
|
||||
protected void btnClear_Click(object sender, EventArgs e)
|
||||
{
|
||||
txt編號_Search.Text = "";
|
||||
txt姓名_Search.Text = "";
|
||||
txt身分證字號_Search.Text = "";
|
||||
txt聯絡電話_Search.Text = "";
|
||||
txt電子郵件_Search.Text = "";
|
||||
}
|
||||
|
||||
protected override void GridView_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
base.GridView_SelectedIndexChanged(sender, e);
|
||||
ActivateTab(MultiView1, 1);
|
||||
}
|
||||
|
||||
protected void cv電子郵件_ServerValidate(object source, ServerValidateEventArgs args)
|
||||
{
|
||||
args.IsValid = IsValidEmail(args.Value);
|
||||
}
|
||||
|
||||
protected void cv身分證字號_ServerValidate(object source, ServerValidateEventArgs args)
|
||||
{
|
||||
string 編號 = Form_View.DataItem == null ? "" : (Form_View.DataItem as 非講師Item).編號;
|
||||
args.IsValid = !Dao非講師.Is身份證字號Dulicate(編號, args.Value);
|
||||
}
|
||||
|
||||
protected void ds非講師Grid_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
|
||||
{
|
||||
e.ObjectInstance = Dao非講師;
|
||||
}
|
||||
|
||||
protected void ds非講師Form_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
|
||||
{
|
||||
e.ObjectInstance = Dao非講師;
|
||||
}
|
||||
|
||||
protected void btnExport_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!canExport)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var export_columns = new List<string>();
|
||||
for (var i = 0; i < cblExport.Items.Count; i++)
|
||||
{
|
||||
if (cblExport.Items[i].Selected)
|
||||
export_columns.Add(cblExport.Items[i].Value);
|
||||
}
|
||||
|
||||
var report = new Report.非講師匯出()
|
||||
{
|
||||
data = Dao非講師.SelectPage(true, 0, Int32.MaxValue,
|
||||
txt編號_Search.Text, txt姓名_Search.Text,
|
||||
txt身分證字號_Search.Text, txt聯絡電話_Search.Text,
|
||||
txt電子郵件_Search.Text),
|
||||
export_columns = export_columns
|
||||
};
|
||||
MemoryStream ms = report.DoReport();
|
||||
ResponseWriteStream(ms, String.Format("{0:yyyyMMdd_HHmmss}_非講師資料匯出.xlsx", PublicVariable.TaiwanNow));
|
||||
}
|
||||
|
||||
protected void btn下載範本_Click(object sender, EventArgs e)
|
||||
{
|
||||
var ms = new 非講師匯入().ImportExample();
|
||||
ResponseWriteStream(ms, "非講師資料匯入範本.xlsx");
|
||||
}
|
||||
|
||||
protected void btn匯入_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (String.IsNullOrEmpty(DAC.GetString(Session["非講師匯入檔案"])))
|
||||
{
|
||||
ltl匯入結果.Text = "請先上傳匯入檔案";
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
var import = new 非講師匯入();
|
||||
import.Connection = conn;
|
||||
var importResult = import.Import<非講師Item>(
|
||||
DAC.GetString(Session["非講師匯入檔案"]),
|
||||
out string message);
|
||||
ltl匯入結果.Text = message;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ltl匯入結果.Text = "資料匯入失敗: " + ex.Message;
|
||||
}
|
||||
}
|
||||
|
||||
protected void btn上傳檔案_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 檔案上傳
|
||||
if (fu匯入檔案.HasFile)
|
||||
{
|
||||
ltl檢查結果.Text = "";
|
||||
|
||||
try
|
||||
{
|
||||
var fileName = $"{PublicVariable.TaiwanNow:yyyyMMdd_HHmmss}_{fu匯入檔案.PostedFile.FileName}";
|
||||
var fullFileName = Path.Combine(ImportBase.ImportFilePath, fileName);
|
||||
fu匯入檔案.PostedFile.SaveAs(fullFileName);
|
||||
Session["非講師匯入檔案"] = fullFileName;
|
||||
var import = new 非講師匯入();
|
||||
var checkErrors = import.Validate(fullFileName, typeof(非講師Item), out int rowCount);
|
||||
if (checkErrors.Count == 0)
|
||||
{
|
||||
ltl檢查結果.Text = $"上傳檔案 {fu匯入檔案.PostedFile.FileName} 上傳成功並通過檢查<br/>共有 {rowCount} 筆資料<br/>請點擊匯入按鈕執行匯入。";
|
||||
}
|
||||
else
|
||||
{
|
||||
ltl檢查結果.Text = $"上傳檔案 {fu匯入檔案.PostedFile.FileName} 上傳成功,但有以下錯誤:<br/>{string.Join("<br/>", checkErrors.ToArray())}";
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ltl檢查結果.Text = "檔案上傳失敗: " + ex.Message;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ltl檢查結果.Text = "請選擇要上傳的檔案";
|
||||
}
|
||||
}
|
||||
|
||||
protected override void AfterChangeTab()
|
||||
{
|
||||
base.AfterChangeTab();
|
||||
InitJSVar();
|
||||
}
|
||||
|
||||
private void InitJSVar()
|
||||
{
|
||||
if (Grid_View.SelectedDataKey != null)
|
||||
{
|
||||
var 講師編號 = DAC.GetString(Grid_View.SelectedDataKey["編號"]);
|
||||
var 講師姓名 = string.Empty;
|
||||
var 講師 = Dao非講師.SelectOne(講師編號).FirstOrDefault();
|
||||
if (講師 != null) 講師姓名 = 講師.姓名;
|
||||
ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "Init",
|
||||
$@"V人員類別 = '非講師'; V講師編號 = '{Grid_View.SelectedDataKey["編號"]}'; V講師姓名 = '{講師姓名}';", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user