Files
thinkyu/Web/forms/customer/fmBpja.ascx.cs
T
sryang 59d410d5cb feat: fmBpja GridView 改用 ObjectDataSource
- 新增 BpjaDAC(SelectPage/SelectCount/SelectBPJAIndex)

- dsBPJAGrid 改 ObjectDataSource;Search/Selected/DataBound 調整
2026-09-10 10:39:45 +08:00

282 lines
8.8 KiB
C#

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 System.Data.Common;
using Wellan.Data;
using Wellan.Common;
using System.Text;
using System.IO;
using System.Drawing;
/// <summary>
/// 年度職稱設定
/// </summary>
public partial class forms_customer_fmBpja : Wellan.Web.UI.WUserControlBase
{
protected string _BPNUM = "";
protected string _BPPYN = "";
protected void Page_Load(object sender, EventArgs e)
{
//if (IsPostBack)
// gvBPJA.DataBind();
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
dsBPJAForm.ConnectionString = ConnectionString;
_BPPYN = GetStringParam("BPPYN");
_BPNUM = GetStringParam("BPNUM");
GetGridViewRowColor(gvBPJA);
Search();
}
// 查詢動作
private new void Search()
{
dsBPJAGrid.SelectParameters["BPPYN"].DefaultValue = _BPPYN;
// 返回時,回到之前選擇的那一筆
if (ParamList != null && ParamList.ContainsKey("BPPYN") && ParamList.ContainsKey("BPJNO"))
{
int rowIndex = new BpjaDAC(Query).SelectBPJAIndex(
WDAC.GetStringValue(ParamList["BPPYN"]),
WDAC.GetStringValue(ParamList["BPJNO"]),
_BPPYN);
if (rowIndex >= 0)
{
gvBPJA.PageIndex = rowIndex / gvBPJA.PageSize;
gvBPJA.SelectedIndex = rowIndex - gvBPJA.PageIndex * gvBPJA.PageSize;
}
ParamList.Remove("BPJNO");
}
}
private new void CalcFields(SqlDataSourceCommandEventArgs e)
{
}
protected void dsBPJAForm_Inserting(object sender, SqlDataSourceCommandEventArgs e)
{
CalcFields(e);
e.Command.Parameters["@BPPYN"].Value = _BPPYN;
e.Command.Parameters["@BPJNO"].Value = WGuard1.WNextRen(DateTime.UtcNow.AddHours(8), "BPJA", "BPJNO", "<ZZ>", String.Format(" BPPYN='{0}'", _BPPYN));
}
protected void dsBPJAForm_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
CalcFields(e);
}
protected void gvBPJA_DataBound(object sender, EventArgs e)
{
GridView_DataBound(sender, e);
if (gvBPJA.Rows.Count > 0)
{
if (gvBPJA.SelectedIndex == -1)
gvBPJA.SelectedIndex = 0;
fvBPJA.DataBind();
}
}
protected void gvBPJA_PageIndexChanged(object sender, EventArgs e)
{
Search();
gvBPJA.SelectedIndex = 0;
gvBPJA.DataBind();
}
protected void dsBPJAGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
{
fvBPJA.ChangeMode(FormViewMode.Insert);
fvBPJA_ModeChanged(sender, e);
}
}
protected void fvBPJA_ItemCommand(object sender, FormViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "Insert":
break;
case "Edit":
break;
case "Cancel":
Search();
fvBPJA.ChangeMode(FormViewMode.ReadOnly);
fvBPJA_ModeChanged(sender, e);
if (gvBPJA.Rows.Count == 0)
DoAfterCommand("BPAA");
break;
case "Return":
DoAfterCommand("BPAA");
break;
case "Detail":
fvBPJA.DataBind();
if (fvBPJA.DataItem != null)
{
DataRowView rv = fvBPJA.DataItem as DataRowView;
ParamList["BPPYN"] = rv["BPPYN"];
ParamList["BPJNO"] = rv["BPJNO"];
ParamList["BPJME"] = rv["BPJME"];
DoAfterCommand("BPJB");
}
break;
}
}
protected void fvBPJA_ItemDeleted(object sender, FormViewDeletedEventArgs e)
{
Search();
gvBPJA.DataBind();
if (gvBPJA.SelectedIndex > gvBPJA.Rows.Count - 1)
{
gvBPJA.SelectedIndex = gvBPJA.Rows.Count - 1;
gvBPJA.DataBind();
}
fvBPJA.DataBind();
}
protected void fvBPJA_ItemInserted(object sender, FormViewInsertedEventArgs e)
{
Search();
}
protected void fvBPJA_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
{
Search();
}
protected void fvBPJA_ModeChanged(object sender, EventArgs e)
{
switch (fvBPJA.CurrentMode)
{
case FormViewMode.ReadOnly:
gvBPJA.Visible = true;
gvBPJA.DataBind();
if (gvBPJA.Rows.Count > 0)
{
if (gvBPJA.SelectedIndex == -1)
{
gvBPJA.SelectedIndex = 0;
}
if (OldMode == FormViewMode.Insert)
{
gvBPJA.PageIndex = gvBPJA.PageCount - 1;
gvBPJA.DataBind();
gvBPJA.SelectedIndex = gvBPJA.Rows.Count - 1;
}
gvBPJA.DataBind();
fvBPJA.DataBind();
}
break;
case FormViewMode.Edit:
gvBPJA.Visible = false;
break;
case FormViewMode.Insert:
gvBPJA.Visible = false;
break;
}
}
protected void fvBPJA_ModeChanging(object sender, FormViewModeEventArgs e)
{
OldMode = (sender as FormView).CurrentMode;
}
protected void fvBPJA_DataBound(object sender, EventArgs e)
{
switch (fvBPJA.CurrentMode)
{
case FormViewMode.Edit:
Control ddlBPJA_BPCLS = fvBPJA.FindControl("ddlBPJA_BPCLS");
RegisterLookupEvent(fvBPJA, "txtBPJA_BPJME_WQRY", "txtBPJA_BPJME", "txtBPJA_BPJME", "BCLS_BPJA_BPNAM", " BSCLS LIKE '\" + document.getElementById(\"" + ddlBPJA_BPCLS.ClientID + "\").value + \"%'");
SetClientFocus(fvBPJA, "txtBPJA_BPJME");
break;
case FormViewMode.Insert:
ddlBPJA_BPCLS = fvBPJA.FindControl("ddlBPJA_BPCLS");
RegisterLookupEvent(fvBPJA, "txtBPJA_BPJME_WQRY", "txtBPJA_BPJME", "txtBPJA_BPJME", "BCLS_BPJA_BPNAM", " BSCLS LIKE '\" + document.getElementById(\"" + ddlBPJA_BPCLS.ClientID + "\").value + \"%'");
SetClientFocus(fvBPJA, "txtBPJA_BPJME");
break;
}
}
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
CustomValidator v = source as CustomValidator;
int i;
args.IsValid = args.Value != "" && int.TryParse(args.Value, out i) && i > 0;
}
protected void fvBPJA_ItemCreated(object sender, EventArgs e)
{
switch (fvBPJA.CurrentMode)
{
case FormViewMode.Insert:
(fvBPJA.FindControl("lbBPJA_BPPYN") as ITextControl).Text = _BPPYN;
break;
}
}
protected void gvBPJA_RowDataBound(object sender, GridViewRowEventArgs e)
{
SetGridViewMouseBehavier(gvBPJA, e.Row);
//GridView_RowDataBound_Shrink_ViewState(sender, e);
}
protected void gvBPJA_SelectedIndexChanged(object sender, EventArgs e)
{
foreach (GridViewRow row in gvBPJA.Rows)
SetGridViewMouseBehavier(gvBPJA, row);
}
protected void fvBPJA_ItemDeleting(object sender, FormViewDeleteEventArgs e)
{
// 刪除前檢查
// 1. 是否已有科目設定
DbCommand cmd1 = Query.NewCommand("SELECT COUNT(1) FROM BPJB WHERE BPPYN=@BPPYN AND BPJNO=@BPJNO");
cmd1.Parameters.Add(Query.NewParameter("BPPYN", e.Values["BPPYN"]));
cmd1.Parameters.Add(Query.NewParameter("BPJNO", e.Values["BPJNO"]));
int i = Convert.ToInt32(Query.ExecuteScalar(cmd1));
cmd1.Dispose();
if (i > 0)
{
cvMessage.ErrorMessage = "本職稱已有等級設定。不可刪除!";
cvMessage.IsValid = false;
e.Cancel = true;
}
// 2. 是否有派遣人員使用此職稱
DbCommand cmd2 = Query.NewCommand("SELECT COUNT(1) FROM RASN WHERE RAPYN=@BPPYN AND RAJNO=@BPJNO");
cmd2.Parameters.Add(Query.NewParameter("BPPYN", e.Values["BPPYN"]));
cmd2.Parameters.Add(Query.NewParameter("BPJNO", e.Values["BPJNO"]));
i = Convert.ToInt32(Query.ExecuteScalar(cmd2));
cmd2.Dispose();
if (i > 0)
{
cvMessage.ErrorMessage = "本職稱已有派遣人員使用。不可刪除!";
cvMessage.IsValid = false;
e.Cancel = true;
}
}
}