/// <summary> /// 檔案清單版本明細每筆資料綁定事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gvFILE_VERSION_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) { GridViewRow gr = e.Row; gr.Attributes.Add("onmouseover", "this.bkc=this.style.backgroundColor;this.style.backgroundColor='#ccffff'"); // 設定每筆資料在滑鼠移動進去時的背景顏色 gr.Attributes.Add("onmouseout", "this.style.backgroundColor=this.bkc"); // 設定每筆資料在滑鼠移出時的背景色 if (gr.RowType == DataControlRowType.DataRow) { DataTable tblItems = gvFILE_VERSION.DataTable; DataRow row = tblItems.Rows[gr.DataItemIndex]; KYTTextBox ktxtFileName = gr.FindControl("ktxtFileName") as KYTTextBox; // 檔案名稱 KYTTextBox ktxtMODIFY_TIME = gr.FindControl("ktxtMODIFY_TIME") as KYTTextBox; // 最後驗證時間 KYTTextBox ktxtFILE_VERSION = gr.FindControl("ktxtFILE_VERSION") as KYTTextBox; // 版本雜湊值 KYTTextBox ktxtFILE_SHA = gr.FindControl("ktxtFILE_SHA") as KYTTextBox; // 版本雜湊值 KYTTextBox ktxtFILE_COMPARE_SHA = gr.FindControl("ktxtFILE_COMPARE_SHA") as KYTTextBox; // 比對雜湊值 gr.BackColor = Color.White; // 設定底色 if (!string.IsNullOrWhiteSpace(row["IS_NEWFILE"].ToString()) && (bool)row["IS_NEWFILE"]) { gr.BackColor = Color.PaleGreen; } else if (!string.IsNullOrWhiteSpace(row["OLDER_FILE_SHA"].ToString()) && // 有更新過檔案 row["FILE_SHA"].ToString() != row["OLDER_FILE_SHA"].ToString()) // 更新前後檔案不同 { gr.BackColor = Color.BlueViolet; } else if (!string.IsNullOrEmpty(row["FILE_COMPARE_SHA"].ToString()) && row["FILE_SHA"].ToString() != row["FILE_COMPARE_SHA"].ToString()) // 比對後檔案不相同 { gr.BackColor = Color.Crimson; } } }
/// <summary> /// 取得TextBox物件所能設定的最大寬度 /// </summary> /// <param name="ktxtControl">KYTTextBox物件</param> /// <param name="maxCharLength">最大字元長度</param> /// <param name="minimumWidth">最小寬度</param> /// <param name="fontSize">輸入框內字元大小</param> public int getTextBoxWidth(KYTTextBox ktxtControl, int maxCharLength, int minimumWidth, float fontSize = 12.0F) { string maxlengthStr = ktxtControl.Text.Trim().Length <= maxCharLength?ktxtControl.Text.Trim() : ktxtControl.Text.Trim().Substring(0, maxCharLength); System.Drawing.Size size = System.Windows.Forms.TextRenderer.MeasureText(maxlengthStr, new System.Drawing.Font(ktxtControl.TextBox1.Font.Name, fontSize)); return(size.Width < minimumWidth ? minimumWidth : size.Width); }
protected void gvColumns_RowDataBound(object sender, GridViewRowEventArgs e) { GridViewRow gr = e.Row; if (gr.RowType == DataControlRowType.DataRow) { DataTable tblColumns = gvColumns.DataTable; DataRow row = tblColumns.Rows[gr.DataItemIndex]; KYTCheckBox kcbPK = (KYTCheckBox)gr.FindControl("kcbPK"); // 鍵值 KYTCheckBox kcbALLOW_NULL = (KYTCheckBox)gr.FindControl("kcbALLOW_NULL"); // 允許NULL KYTTextBox ktxtCOLUMN_NAME = (KYTTextBox)gr.FindControl("ktxtCOLUMN_NAME"); // 欄位名稱 KYTTextBox ktxtDATA_TYPE = (KYTTextBox)gr.FindControl("ktxtDATA_TYPE"); // 欄位類型 KYTTextBox ktxtDEFAULT_VALUE = (KYTTextBox)gr.FindControl("ktxtDEFAULT_VALUE"); // 預設值 KYTTextBox ktxtCOLUMN_DESC = (KYTTextBox)gr.FindControl("ktxtCOLUMN_DESC"); // 說明 kcbPK.ViewType = KYTViewType.Input; kcbALLOW_NULL.ViewType = KYTViewType.Input; ktxtCOLUMN_NAME.ViewType = KYTViewType.Input; ktxtDATA_TYPE.ViewType = KYTViewType.Input; ktxtDEFAULT_VALUE.ViewType = KYTViewType.Input; ktxtCOLUMN_DESC.ViewType = KYTViewType.Input; kcbPK.Checked = row["PK"].ToString().ToUpper() == "Y"; kcbALLOW_NULL.Checked = row["ALLOW_NULL"].ToString().ToUpper() == "Y"; } }
protected void lbtnDEL_Click(object sender, EventArgs e) { LinkButton _lbtnDEL = (LinkButton)sender; GridViewRow gr = _lbtnDEL.NamingContainer as GridViewRow; KYTDropDownList kddlFormName = (KYTDropDownList)gr.FindControl("kddlFormName"); // 表單名稱 KYTTextBox ktxtRFC_NAME = (KYTTextBox)gr.FindControl("ktxtRFC_NAME"); // RFC方法名稱 KYTTextBox ktxtDLL_PATH = (KYTTextBox)gr.FindControl("ktxtDLL_PATH"); // DLL組件路徑 KYTTextBox ktxtZTABLE_NAME = (KYTTextBox)gr.FindControl("ktxtZTABLE_NAME"); // 中繼表主表表格名稱 using (SqlDataAdapter sda = new SqlDataAdapter(@" SET NOCOUNT ON; DELETE FROM [ZUOF_RFC_MA] WHERE [FORM_ID] = @FORM_ID AND [RFC_NAME] = @RFC_NAME ", new DatabaseHelper().Command.Connection.ConnectionString)) using (DataSet ds = new DataSet()) { sda.SelectCommand.Parameters.AddWithValue("@FORM_ID", kddlFormName.SelectedValue); sda.SelectCommand.Parameters.AddWithValue("@RFC_NAME", ktxtRFC_NAME.Text.Trim()); try { sda.Fill(ds); DataTable dtSource = gvForms.DataTable; dtSource.Rows.RemoveAt(gr.DataItemIndex); gvForms.BindDataOnly = true; // 不要收納現在網頁上的內容 gvForms.DataSource = dtSource; gvForms.DataBind(); } catch (Exception ex) { KYTUtilLibs.KYTDebugLog.Log(KYTLog.DebugLog.LogLevel.Error, string.Format(@"MAINTAIN_RFC_STATUS_RELATION.lbtnDEL_Click.DELETE.ZUOF_RFC_MA.ERROR::{0}", ex.Message)); } } }
protected void gvForms_RowDataBound(object sender, GridViewRowEventArgs e) { GridViewRow gr = e.Row; gr.Attributes.Add("onmouseover", "this.bkc=this.style.backgroundColor;this.style.backgroundColor='#ccffff'"); // 設定每筆資料在滑鼠移動進去時的背景顏色 gr.Attributes.Add("onmouseout", "this.style.backgroundColor=this.bkc"); // 設定每筆資料在滑鼠移出時的背景色 if (gr.RowType == DataControlRowType.DataRow) { DataTable tblItems = gvForms.DataTable; DataRow row = tblItems.Rows[gr.DataItemIndex]; LinkButton lbtnCOPY = (LinkButton)gr.FindControl("lbtnCOPY"); // 複製按鈕 LinkButton lbtnDEL = (LinkButton)gr.FindControl("lbtnDEL"); // 刪除按鈕 KYTDropDownList kddlFormName = (KYTDropDownList)gr.FindControl("kddlFormName"); // 表單名稱 KYTTextBox ktxtRFC_NAME = (KYTTextBox)gr.FindControl("ktxtRFC_NAME"); // RFC方法名稱 KYTTextBox ktxtDLL_FILE_NAME = (KYTTextBox)gr.FindControl("ktxtDLL_FILE_NAME"); // DLL檔案名稱 KYTTextBox ktxtDLL_PATH = (KYTTextBox)gr.FindControl("ktxtDLL_PATH"); // DLL組件路徑 KYTTextBox ktxtRE_PROCESS_NAME = (KYTTextBox)gr.FindControl("ktxtRE_PROCESS_NAME"); // 重送RFC方法名稱 KYTTextBox ktxtZTABLE_NAME = (KYTTextBox)gr.FindControl("ktxtZTABLE_NAME"); // 中繼表主表表格名稱 HiddenField hidDBData = (HiddenField)gr.FindControl("hidDBData"); // 在DB有資料 hidDBData.Value = row["IS_DBDATA"].ToString() == "Y" ? "Y" : "N"; if (kddlFormName.DataSource == null) { kddlFormName.DataSource = getFORMNAME(); kddlFormName.DataTextField = "FORM_NAME"; kddlFormName.DataValueField = "FORM_ID"; kddlFormName.DataBind(); } kddlFormName.SelectedValue = row["FORM_ID"].ToString(); kddlFormName.DropDownList1.Width = 150; if (row["IS_DBDATA"].ToString() == "Y") { lbtnDEL.OnClientClick = string.Format(@"return confirm('是否要刪除?\n, 表單名稱: {0}, RFC: {1}');", kddlFormName.SelectedItem.Text, !string.IsNullOrEmpty(ktxtRFC_NAME.Text.Trim()) ? ktxtRFC_NAME.Text.Trim() : "未填寫"); } } else if (gr.RowType == DataControlRowType.Footer) { #region 設定輸入框最大寬度 int MAX_RFC_NAME_Width = 0; int MAX_DLL_FILE_NAME_Width = 0; int MAX_DLL_PATH_Width = 0; int MAX_RE_PROCESS_NAMEE_Width = 0; int MAX_ZTABLE_NAME_Width = 0; foreach (GridViewRow _gr in gvForms.Rows) { KYTTextBox ktxtRFC_NAME = (KYTTextBox)_gr.FindControl("ktxtRFC_NAME"); // RFC方法名稱 KYTTextBox ktxtDLL_FILE_NAME = (KYTTextBox)_gr.FindControl("ktxtDLL_FILE_NAME"); // DLL檔案名稱 KYTTextBox ktxtDLL_PATH = (KYTTextBox)_gr.FindControl("ktxtDLL_PATH"); // DLL組件路徑 KYTTextBox ktxtRE_PROCESS_NAME = (KYTTextBox)_gr.FindControl("ktxtRE_PROCESS_NAME"); // 重送RFC方法名稱 KYTTextBox ktxtZTABLE_NAME = (KYTTextBox)_gr.FindControl("ktxtZTABLE_NAME"); // 中繼表主表表格名稱 #region 取得最大寬度 int RFC_NAME_Width = getTextBoxWidth(ktxtRFC_NAME, 30, 50); MAX_RFC_NAME_Width = RFC_NAME_Width > MAX_RFC_NAME_Width ? RFC_NAME_Width : MAX_RFC_NAME_Width; int DLL_FILE_NAME_Width = getTextBoxWidth(ktxtDLL_FILE_NAME, 15, 50); MAX_DLL_FILE_NAME_Width = DLL_FILE_NAME_Width > MAX_DLL_FILE_NAME_Width ? DLL_FILE_NAME_Width : MAX_DLL_FILE_NAME_Width; int DLL_PATH_Width = getTextBoxWidth(ktxtDLL_PATH, 50, 50); MAX_DLL_PATH_Width = DLL_PATH_Width > MAX_DLL_PATH_Width ? DLL_PATH_Width : MAX_DLL_PATH_Width; int RE_PROCESS_NAMEE_Width = getTextBoxWidth(ktxtRE_PROCESS_NAME, 20, 50); MAX_RE_PROCESS_NAMEE_Width = RE_PROCESS_NAMEE_Width > MAX_RE_PROCESS_NAMEE_Width ? RE_PROCESS_NAMEE_Width : MAX_RE_PROCESS_NAMEE_Width; int ZTABLE_NAME_Width = getTextBoxWidth(ktxtZTABLE_NAME, 25, 50); MAX_ZTABLE_NAME_Width = ZTABLE_NAME_Width > MAX_ZTABLE_NAME_Width ? ZTABLE_NAME_Width : MAX_ZTABLE_NAME_Width; #endregion 取得最大寬度 } foreach (GridViewRow _gr in gvForms.Rows) { KYTTextBox ktxtRFC_NAME = (KYTTextBox)_gr.FindControl("ktxtRFC_NAME"); // RFC方法名稱 KYTTextBox ktxtDLL_FILE_NAME = (KYTTextBox)_gr.FindControl("ktxtDLL_FILE_NAME"); // DLL檔案名稱 KYTTextBox ktxtDLL_PATH = (KYTTextBox)_gr.FindControl("ktxtDLL_PATH"); // DLL組件路徑 KYTTextBox ktxtRE_PROCESS_NAME = (KYTTextBox)_gr.FindControl("ktxtRE_PROCESS_NAME"); // 重送RFC方法名稱 KYTTextBox ktxtZTABLE_NAME = (KYTTextBox)_gr.FindControl("ktxtZTABLE_NAME"); // 中繼表主表表格名稱 ktxtRFC_NAME.Width = MAX_RFC_NAME_Width; ktxtDLL_FILE_NAME.Width = MAX_DLL_FILE_NAME_Width; ktxtDLL_PATH.Width = MAX_DLL_PATH_Width; ktxtRE_PROCESS_NAME.Width = MAX_RE_PROCESS_NAMEE_Width; ktxtZTABLE_NAME.Width = MAX_ZTABLE_NAME_Width; } #endregion 設定輸入框最大寬度 } }