后台页面操作汇总
页面操作(gridview)========ClsOperatePage.cs=============== namespace SLNPAGEPUB {/// <summary>/// 页面操作公共类/// </summary>public class ClsOperatePage{public enum ForeColor{Red = 1,Green = 2,Blue = 3,Yellow = 4,White = 5,Black = 6,Null = 7,}public enum ControlType{Button = 1,Label = 2,TextBox = 3,DropDownList = 4,Null = 5,}#region 变量声明private SlnSuwfPage _page;#endregion#region 构造函数/// <summary>/// 构造函数/// </summary>/// <param name="page">程序单元</param>public ClsOperatePage(SlnSuwfPage page){this._page = page;}#endregion#region 设置页面按钮不可见/// <summary>/// 设置页面按钮不可见/// </summary>/// <param name="ctrl"></param>public static void SetControlUnVisible(Control ctrl){if (ctrl.UniqueID.IndexOf("btn") >= 0){ctrl.Visible = false;return;}foreach (Control c in ctrl.Controls){ClsOperatePage.SetControlUnVisible(c);}}#endregion#region 打印Excel模板/// <summary>/// 打印Excel模板/// </summary>/// <param name="page">平台页面</param>/// <param name="templateName">模板名称</param>/// <param name="key">数据主键</param>/// <param name="isPrint">设置是打印还是预览</param>/// <returns></returns>public static string PrintExcel(SlnSuwfPage page, string templateName, string key, bool isPrint){string strMsg = string.Empty;string strSql = string.Empty;if (string.IsNullOrEmpty(templateName)) return "";try{DataSet ds = new DataSet();strSql = "SELECT TABLENAME, QUERYSQL FROM XT_DYXD_TB WHERE TEMPLATENAME = '" + templateName + "'";DataTable table = SlnDataAccess.GetDataTable(strSql);foreach (DataRow row in table.Rows){string strTableName = row[0].ToString();string strQuerySql = row[1].ToString();strQuerySql = strQuerySql.Replace("{$PKValue$}", key);DataTable dt = SlnDataAccess.GetDataTable(strQuerySql);dt.TableName = strTableName;dt.PrimaryKey = new DataColumn[] { dt.Columns[0] };ds.Tables.Add(dt.Copy());}strMsg += Salien.Utility.SUWF.ClsPrintExcel.ExportExcel(page.Unit.ProgUnit.PU_BM, ds, templateName + ".xls", true, "", "", "", "Portrait=false&IsPreView=" + (!isPrint).ToString().ToLower());return strMsg;}catch (Exception err){return err.Source + " " + err.Message;}}#endregion#region 打印Excel模板/// <summary>/// 打印Excel模板/// </summary>/// <param name="page">平台页面</param>/// <param name="templateName">模板名称</param>/// <param name="key">数据主键</param>/// <returns></returns>public static string PrintExcel(SlnSuwfPage page, string templateName, string key){string strMsg = string.Empty;string strSql = string.Empty;if (string.IsNullOrEmpty(templateName)) return "";try{DataSet ds = new DataSet(); strSql = "SELECT TABLENAME, QUERYSQL FROM XT_DYXD_TB WHERE TEMPLATENAME = '" + templateName + "'";DataTable table = SlnDataAccess.GetDataTable(strSql);foreach (DataRow row in table.Rows){string strTableName = row[0].ToString();string strQuerySql = row[1].ToString();strQuerySql = strQuerySql.Replace("{$PKValue$}", key);DataTable dt = SlnDataAccess.GetDataTable(strQuerySql);dt.TableName = strTableName;dt.PrimaryKey = new DataColumn[] { dt.Columns[0] };ds.Tables.Add(dt.Copy());}strMsg += Salien.Utility.SUWF.ClsPrintExcel.ExportExcel(page.Unit.ProgUnit.PU_BM, ds, templateName + ".xls", true);return strMsg;}catch (Exception err){return err.Source + " " + err.Message;}}#endregion#region 导出Excel模板/// <summary>/// 导出Excel模板/// </summary>/// <param name="page">平台页面</param>/// <param name="templateName">模板名称</param>/// <param name="key">数据主键</param>/// <returns></returns>public static string ExportExcel(SlnSuwfPage page, string templateName, string key){string strMsg = string.Empty;string strSql = string.Empty;if (string.IsNullOrEmpty(templateName)) return "";try{DataSet ds = new DataSet();strSql = "SELECT TABLENAME, QUERYSQL FROM XT_DYXD_TB WHERE TEMPLATENAME = '" + templateName + "'";DataTable table = SlnDataAccess.GetDataTable(strSql);foreach (DataRow row in table.Rows){string strTableName = row[0].ToString();string strQuerySql = row[1].ToString();strQuerySql = strQuerySql.Replace("{$PKValue$}", key);DataTable dt = SlnDataAccess.GetDataTable(strQuerySql);dt.TableName = strTableName;dt.PrimaryKey = new DataColumn[] { dt.Columns[0] };ds.Tables.Add(dt.Copy());} strMsg += Salien.Utility.SUWF.ClsPrintExcel.ExportExcel(page.Unit.ProgUnit.PU_BM, ds, templateName + ".xls", false, "", "", "", "");return strMsg;}catch (Exception err){return err.Source + " " + err.Message;}}#endregion#region 关闭页面/// <summary>/// 关闭页面/// </summary>public void CloseWindow(){string strJS = "<script type='text/javascript'>"+ "window.close();"+ "</script>";this._page.Response.Write(strJS);}#endregion#region 刷新父页面/// <summary>/// 刷新父页面/// </summary>public void RefreshParentWindow(){string strJS = "<script type='text/javascript'>"+ "var pWindow = window.parent.parent;"+ "if(pWindow != null && pWindow.gridframe != null && pWindow.gridframe.document.all.btnQuery != null)"+ "{pWindow.gridframe.document.all.btnQuery.click();}"+ "pWindow = window.parent.parent.parent.parent;"+ "if(pWindow != null && pWindow.gridframe != null && pWindow.gridframe.document.all.btnQuery != null)"+ "{pWindow.gridframe.document.all.btnQuery.click();}"+ "</script>";this._page.Response.Write(strJS);}#endregion#region 刷新父页面/// <summary>/// 刷新父页面/// </summary>public void RefreshParentWindow(bool ModalWindow){if (ModalWindow == true){string strJS = "<script type='text/javascript'>"+ "var pWindow = window.opener.parent.parent.parent;"+ "if(pWindow != null && pWindow.gridframe != null && pWindow.gridframe.document.all.btnQuery != null)"+ "{pWindow.gridframe.document.all.btnQuery.click();}"+ "pWindow = window.opener.parent.parent;"+ "if(pWindow != null && pWindow.gridframe != null && pWindow.gridframe.document.all.btnQuery != null)"+ "{pWindow.gridframe.document.all.btnQuery.click();}"+ "pWindow = window.opener.parent.parent.parent.parent;"+ "if(pWindow != null && pWindow.gridframe != null && pWindow.gridframe.document.all.btnQuery != null)"+ "{pWindow.gridframe.document.all.btnQuery.click();}"+ "pWindow = window.opener.parent;"+ "if(pWindow != null)"+ "{pWindow.document.location.reload();}"+ "</script>";this._page.Response.Write(strJS);}}#endregion#region 刷新子页面/// <summary>/// 刷新子页面/// </summary>public void RefreshChildWindow(){string strJS = "<script type='text/javascript'>"+ "var pWindow = window.parent;"+ "if(pWindow != null && pWindow.cardframe != null && pWindow.cardframe.subinfoframe.gridframe != null && pWindow.cardframe.subinfoframe.gridframe.document.all.btnQuery != null)"+ "{pWindow.cardframe.subinfoframe.gridframe.document.all.btnQuery.click();}"+ "else if(pWindow != null && pWindow.cardframe != null)"+ "{window.parent.cardframe.document.location.reload();}"+ "</script>";this._page.Response.Write(strJS);}#endregion#region 设置页面不被缓存/// <summary>/// 设置页面不被缓存/// </summary>public void SetPageNoCache(){this._page.Response.Buffer = true;this._page.Page.Response.Cache.SetNoStore();}#endregion#region 返回当前网格数据选中行里指定字段为空的行号,行号之间以逗号分割。/// <summary>/// 返回当前网格数据选中行里指定字段为空的行号,行号之间以逗号分割。/// </summary>/// <param name="field">要检索的字段</param>/// <returns></returns>public string SelectedRowsWithXFieldIsNull(string field){string rows = string.Empty;for (int i = 0; i < this._page.GridData.Rows.Count; i++){if (this._page.GridRowIsSelected(i)){if (string.IsNullOrEmpty(this._page.GetRowDataByKey(i, field))){rows += i.ToString() + ",";}}}rows = rows.TrimEnd(',');return rows;}#endregion#region 返回当前网格数据选中行里指定字段为空的行号,行号之间以逗号分割。/// <summary>/// 返回当前网格数据选中行里指定字段为空的行号,行号之间以逗号分割。/// </summary>/// <param name="field">要检索的字段。</param>/// <param name="isStartWithZero">指定返回的行号是否从零开始。</param>/// <returns></returns>public string SelectedRowsWithXFieldIsNull(string field, bool isStartWithZero){string rows = string.Empty;for (int i = 0; i < this._page.GridData.Rows.Count; i++){if (this._page.GridRowIsSelected(i)){if (string.IsNullOrEmpty(this._page.GetRowDataByKey(i, field))){rows += i.ToString() + ",";}}}rows = rows.TrimEnd(',');if (isStartWithZero == false){string[] arr = rows.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);for (int i = 0; i < arr.Length; i++){arr[i] = Convert.ToString(Int32.Parse(arr[i]) + 1);}rows = string.Empty;for (int i = 0; i < arr.Length; i++){rows += arr[i] + ",";}rows = rows.TrimEnd(',');}return rows;}#endregion#region 获取当前网格数据中选中的行号,行号之间以逗号分割。/// <summary>/// 获取当前网格数据中选中的行号,行号之间以逗号分割。/// </summary>/// <returns></returns>public string GetSelectedRows(){string rows = string.Empty;for (int i = 0; i < this._page.GridData.Rows.Count; i++){if (this._page.GridRowIsSelected(i)){rows += i.ToString() + ",";}}rows = rows.TrimEnd(',');return rows;}#endregion#region 保存网格数据。/// <summary>/// 保存网格数据。/// </summary>public void SaveGridData(){this._page.btnSave_Click(null, null);}#endregion#region 保存网格数据。/// <summary>/// 保存网格数据。/// </summary>/// <param name="isRestoreTickState">指示保存操作完成之后,是否需要恢复网格多选框的选中状态。</param>public void SaveGridData(bool isRestoreTickState){try{if (isRestoreTickState == false){this._page.btnSave_Click(null, null);}else{string strKeys = this._page.GetRowDataPrimaryKeys();this._page.btnSave_Click(null, null);string[] arrKeys = strKeys.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);string strPU = this._page.Unit.ProgUnit.PU_BM;string strPK = SlnDataAccess.GetValueBySql("SELECT FLD_KEY FROM SUF_FIELD_TB WHERE FLD_ISPRIMKEY = 1 AND PU_BM = " + strPU).ToString();for (int i = 0; i < arrKeys.Length; i++){for (int j = 0; j < this._page.GridData.Rows.Count; j++){if (this._page.GetRowDataByKey(j, strPK) == arrKeys[i]){this._page.SetGridRowSelected(j, true);break;}}}}}catch (Exception ex){throw new Exception(ex.Source + " " + ex.Message);}}#endregion#region 设置网格单元格样式。/// <summary>/// 设置网格单元格样式。/// </summary>/// <param name="field">指定需要设置样式的网格字段名。</param>/// <param name="condition">指定设置样式的条件。</param>/// <param name="cellControlType">指定单元格的控件类型。</param>/// <param name="cellForeColor">设置单元格的前景色。</param>/// <param name="cellEnabled">设置单元格是否只读。</param>public void SetGridFieldStyle(string field, string condition, ControlType cellControlType, ForeColor cellForeColor, bool cellEnabled){try{GridView grid = this._page.FindControl("grdTest") as GridView;foreach (GridViewRow row in grid.Rows){string strPU = this._page.Unit.ProgUnit.PU_BM;string strPKField = SlnDataAccess.GetValueBySql("SELECT FLD_KEY FROM SUF_FIELD_TB WHERE FLD_ISPRIMKEY = 1 AND PU_BM = " + strPU).ToString();string strPKValue = this._page.GetRowDataByKey(row.RowIndex, strPKField);string strSql = string.Empty;if (string.IsNullOrEmpty(condition)){strSql = "SELECT 1 FROM (" + this._page.GetQuerySql() + ") WHERE " + strPKField + "=" + strPKValue;}else{strSql = "SELECT 1 FROM (" + this._page.GetQuerySql() + ") WHERE " + strPKField + "=" + strPKValue + " AND " + condition;}object obj = SlnDataAccess.GetValueBySql(strSql);if (obj != null){if (!string.IsNullOrEmpty(field)){if (cellControlType != ControlType.Null){if (cellEnabled == true){switch (cellControlType){case ControlType.TextBox:switch (cellForeColor){case ForeColor.Red: this._page.GetTextBoxInGridCell(row.RowIndex, field).ForeColor = Color.Red; break;case ForeColor.Green: this._page.GetTextBoxInGridCell(row.RowIndex, field).ForeColor = Color.Green; break;case ForeColor.Blue: this._page.GetTextBoxInGridCell(row.RowIndex, field).ForeColor = Color.Blue; break;case ForeColor.Yellow: this._page.GetTextBoxInGridCell(row.RowIndex, field).ForeColor = Color.Yellow; break;default: break;}this._page.GetTextBoxInGridCell(row.RowIndex, field).Attributes.Add("readonly", "false"); break;default:switch (cellForeColor){case ForeColor.Red: row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].ForeColor = Color.Red; break;case ForeColor.Green: row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].ForeColor = Color.Green; break;case ForeColor.Blue: row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].ForeColor = Color.Blue; break;case ForeColor.Yellow: row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].ForeColor = Color.Yellow; break;default: break;}row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].Enabled = true; break;}}else{switch (cellControlType){case ControlType.TextBox:switch (cellForeColor){case ForeColor.Red: this._page.GetTextBoxInGridCell(row.RowIndex, field).ForeColor = Color.Red; break;case ForeColor.Green: this._page.GetTextBoxInGridCell(row.RowIndex, field).ForeColor = Color.Green; break;case ForeColor.Blue: this._page.GetTextBoxInGridCell(row.RowIndex, field).ForeColor = Color.Blue; break;case ForeColor.Yellow: this._page.GetTextBoxInGridCell(row.RowIndex, field).ForeColor = Color.Yellow; break;default: break;}this._page.GetTextBoxInGridCell(row.RowIndex, field).Attributes.Add("readonly", "true"); break;default:switch (cellForeColor){ case ForeColor.Red: row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].ForeColor = Color.Red; break; case ForeColor.Green: row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].ForeColor = Color.Green; break;case ForeColor.Blue: row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].ForeColor = Color.Blue; break;case ForeColor.Yellow: row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].ForeColor = Color.Yellow; break;default: break;}row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].Enabled = false; break;}}}else{if (cellEnabled == true){row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].Enabled = true;}else{row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].Enabled = false;}switch (cellForeColor){ case ForeColor.Red: row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].ForeColor = Color.Red; break; case ForeColor.Green: row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].ForeColor = Color.Green; break; case ForeColor.Blue: row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].ForeColor = Color.Blue; break; case ForeColor.Yellow: row.Cells[this._page.Unit.ProgUnit.FieldList.GetIndexByKey(field)].ForeColor = Color.Yellow; break; default: break;}}}}}}catch (Exception ex){throw new Exception(ex.Source + " " + ex.Message);}}#endregion} }================SLSHTestEdit========================================== namespace SLSHTestEdit {public class Class1 : ISuwfBus{private SlnSuwfPage _page;GridView grd;void ISuwfBus.Initial(SlnSuwfPage page){this._page = page; _page.Load += new EventHandler(Page_Load);}private void Page_Load(object sender, EventArgs e){ ChageEdit(null, null); return;}#region ChageCellColorprivate void ChageEdit(object sender, EventArgs e){ int indexID = _page.Unit.ProgUnit.FieldList.GetFieldByKey("ID").Index;//流水号int indx_edit = _page.Unit.ProgUnit.FieldList.GetFieldByKey("edit").Index;//是否编辑grd = _page.MainGrid;foreach (GridViewRow row in grd.Rows){ if( ConvertFunction.ObjToInt32(row.Cells[indexID].Text)==1){row.Cells[indx_edit].Text = "";} }}#endregion ChageCellColor} } ===============ClsCalculateZPDJ .cs========== namespace WXSMGZ {class ClsCalculateZPDJ : ISuwfBus{private SlnSuwfPage _page;public void Initial(SlnSuwfPage page){_page = page;_page.afterFillGrid += new AfterFillGrid(afterFillGrid);}#region afterFillGridprivate void afterFillGrid(){GridView grd = _page.MainGrid;int ZPDJ = _page.Unit.ProgUnit.FieldList.GetIndexByKey("ZPDJ");foreach (GridViewRow row in grd.Rows){ string ZGZ = ConvertFunction.ObjToStr(_page.GetRowDataByKey(row.RowIndex,"ZGZ")).Trim(); string GHGZ = ConvertFunction.ObjToStr(_page.GetRowDataByKey(row.RowIndex,"GHGZ")).Trim(); string RKSL = ConvertFunction.ObjToStr(_page.GetRowDataByKey(row.RowIndex,"RKSL")).Trim();if (SlnString.IsNull(ZGZ)==true) { row.Cells[ZPDJ].Text =""; }else if (SlnString.IsNull(GHGZ)==true) { row.Cells[ZPDJ].Text=""; }else if (SlnString.IsNull(RKSL)==true) { row.Cells[ZPDJ].Text =""; }else{ row.Cells[ZPDJ].Text =CalcZPDJ(ZGZ, GHGZ, RKSL);} }}#endregion } } ========SLSHNYGL_ONLINE.PUB============= namespace SLSHNYGL_ONLINE.PUB {public class ClsFun{public static int GetSelectedRowNum(SlnSuwfPage _page, int iCol){int iCount = 0;int iSelectRowNum = -1;for (int i = 0; i < _page.MainGrid.Rows.Count; i++){if (_page.MainGrid.Rows[i].HasControls()){if (_page.MainGrid.Rows[i].Controls[iCol].HasControls()){if (((_page.MainGrid.Rows[i].Controls[iCol].Controls[0]) as CheckBox) != null){if (((_page.MainGrid.Rows[i].Controls[iCol].Controls[0]) as CheckBox).Checked){iSelectRowNum = i;iCount++;}}}}}if (iCount == 1)//只能选择一个 {iSelectRowNum = 1;}else{iSelectRowNum = -1;}return iSelectRowNum;} } } ========ClsMX_BD============private void btnCalculate1_click(object sender, EventArgs e){if (grd.Rows.Count == 0){return;}isCalculate = true;listParameter = new List<DataFieldEntity>();GetParameterDataTable();//查询数据库 根据模型id 获取模型下的需要公式计算的参数 str_ParametersInGs = this.GetAllParameterIdInGsToStr(mx_id); //根据 模型下参数对应的 公式 获取公式中用到的参数字符串 (1,2,3)形式if (str_ParametersInGs == null || str_ParametersInGs == ""){_page.ShowMessage("没有指标需要计算");return;}GetGridBoxValueList("PARAMETER_ID", "MXBD_BD");//获取网格编辑值 //查询数据库获取与模型相关的所有参数,包含模型下参数 和 公式中涉及到的参数,按照公式层级由0向上 getAllParameterDataTable();LoadLevel0Parameter();//界面上已计算0级参数 LoadData();//根据公式计算 从1级开始往上递归计算 setGridValue();//将计算后的数据填到界面上 }//给界面数据赋值时,将原始值为空的,赋值,用颜色标示private void setGridValue(){string temp_str = "";try{string ys_value = "";string bd_value = "";int index = 0;DataFieldEntity temp = new DataFieldEntity();int zb_ys = this._page.Unit.ProgUnit.FieldList.GetIndexByKey("ZB_YS");int mx_ys = this._page.Unit.ProgUnit.FieldList.GetIndexByKey("MXBD_YS");string temp_level = "";string str_tips = _page.GetValueByName("dataTips");bdysnewParameter = _page.Session["bdysnew"]==null?null:(Dictionary<string, string>)_page.Session["bdysnew"];zbysnewParameter = _page.Session["zbysnew"]==null?null:(Dictionary<string, string>)_page.Session["zbysnew"];foreach (GridViewRow row in grd.Rows){ys_value = "";bd_value = "";index = row.RowIndex;current_pid = _page.GetRowDataByKey(index, "PARAMETER_ID");temp = listParameter.Find(getValue);//---lzw 更具session给原始赋值if (bdysnewParameter.ContainsKey(current_pid)){row.Cells[mx_ys].Text = bdysnewParameter[current_pid];row.Cells[mx_ys].ForeColor = Color.Red;ys_value = bdysnewParameter[current_pid];}else{ys_value = _page.GetRowDataByKey(index, "MXBD_YS");}bd_value = _page.GetRowDataByKey(index, "MXBD_BD");try{if (double.Parse(bd_value) != double.Parse(ys_value))//和原始值不同变色 {(_page.GetTextBoxInGridCell(index, "MXBD_BD") as TextBox).BackColor = Color.Yellow;}}catch (Exception){}ys_value = "";bd_value = "";//---lzw 只给指标赋值current_pid = _page.GetRowDataByKey(index, "ZB_ID");temp = listParameter.Find(getValue);if (temp != null){temp_str += index + "行 指标标定赋值" + temp.U_VALUE + ";"; if (temp.CanCalculate){(_page.GetTextBoxInGridCell(index, "ZB_BD") as TextBox).Text = temp.U_VALUE;bd_value = temp.U_VALUE;}else{(_page.GetTextBoxInGridCell(index, "ZB_BD") as TextBox).Text = str_tips;bd_value = str_tips;}}//---lzw 根据session给原始赋值if (zbysnewParameter.ContainsKey(current_pid)){row.Cells[zb_ys].Text = zbysnewParameter[current_pid];//row.ForeColor = Color.Red;row.Cells[zb_ys].ForeColor = Color.Red;ys_value = zbysnewParameter[current_pid];}else{ys_value = _page.GetRowDataByKey(index, "ZB_YS");}try{if (double.Parse(bd_value) != double.Parse(ys_value))//和原始值不同变色 {(_page.GetTextBoxInGridCell(index, "ZB_BD") as TextBox).BackColor = Color.Yellow;}}catch (Exception){}}_page.ShowMessage("计算完成");}catch (System.Exception e){ for (int m = 0; m < listParameter.Count;m++ ){temp_str += listParameter[m].PARAMETER_ID + ":" + listParameter[m].U_VALUE + ";";}_page.ShowMessage("参数个数:" + listParameter.Count + "; 参数信息" + temp_str + ";" + strError + "; 计算出错" + e.Message);}} ===============HY27101btnBC=============== namespace SLSH20701 //用于HY20702中 {public class ClsBC : ISuwfBus{ private SlnSuwfPage _page;public ArrayList CheckBoxSelectedIndex = new ArrayList();//复选框勾选索引,用来勾选错误时间信息的数据行void ISuwfBus.Initial(SlnSuwfPage page){this._page = page;_page.Load += new EventHandler(page_Load);PUB.BindButtonEvent(_page, "btnBC", new EventHandler(btnBC_Click));} void page_Load(object sender, EventArgs e){ } void btnBC_Click(object sender, EventArgs e){try{string strPK = _page.GetRowDataPrimaryKeys();if (SlnString.IsNull(strPK) == true){_page.ShowMessage(SlnString.ScriptAlertMessage("请先选择网格数据"));return;}List<string> lstSql = new List<string>();string strNF = _page.GetControlValue("val_NF");string strYF = _page.GetControlValue("val_YF");if (strNF == "" && strYF != ""){_page.ShowMessage("年份不能为空!");return;}if (strYF == "" && strNF != ""){_page.ShowMessage("月份不能为空!");return;}if (strNF == "" && strYF == ""){_page.ShowMessage("年份月份不能为空!");return;}string id = string.Empty;string strKSJHRQ = string.Empty;//开始交货日期string strJZJHRQ = string.Empty;//截止交货日期string strMsg = string.Empty;//输出错误信息string strBZ = string.Empty;//备注信息GridView grd = _page.MainGrid;foreach (GridViewRow gridRow in grd.Rows){if (_page.GridRowIsSelected(gridRow.RowIndex)){id = _page.GetRowDataByKey(gridRow.RowIndex, "ID");strKSJHRQ = _page.GetRowDataByKey(gridRow.RowIndex, "KSJHRQ");strJZJHRQ = _page.GetRowDataByKey(gridRow.RowIndex, "JZJHRQ");strBZ = _page.GetRowDataByKey(gridRow.RowIndex, "BZ");int result = JudgeDate(strNF, strYF, strKSJHRQ, strJZJHRQ);//调用判断日期填写是否正确的方法if (result == 1)//只填写截止交货日期{//更新表中的截止交货日期 lstSql.Add($"update cgyclyddhj_GYS_tb set jzjhrq=to_date('{ strJZJHRQ}','yyyy-mm-dd') where id = { id)} "); lstSql.Add(string.Format("update cgyclyddhj_GYS_tb set bz='{0}' where id = {1} ", strBZ, id)); }else if (result == 2)//同时填写了开始交货日期和截止交货日期 { //更新表中的开始交货日期和截止交货日期 lstSql.Add(string.Format("update cgyclyddhj_GYS_tb set ksjhrq=to_date('{0}','yyyy-mm-dd'),jzjhrq=to_date('{1}','yyyy-mm-dd') where id = {2} ", strKSJHRQ, strJZJHRQ, id)); lstSql.Add(string.Format("update cgyclyddhj_GYS_tb set bz='{0}' where id = {1} ", strBZ, id));} //其他都属于输入错误的情况,将索引号获取,并输出更新错误信息输出字符串else{strMsg = strMsg + "第" + (gridRow.RowIndex + 1) + "行输入信息有误 ";CheckBoxSelectedIndex.Add(gridRow.RowIndex);//将需要勾选的错误数据行加入动态数组当中 }}} string SqlMsg = SlnDataAccess.ExecuteSqlTransaction(lstSql);//专门处理执行SQL批操作是出现的错误if (string.IsNullOrEmpty(SqlMsg)){if (strMsg.IndexOf("第") > -1)//如果包含“第”字样,说明有错误时间信息,则输出错误提示 {this._page.ShowMessage("保存成功!其中" + strMsg);}else{this._page.ShowMessage("保存成功");//否则直接提示保存成功 }}else{this._page.ShowMessage("保存出错" + strMsg);}_page.btnQuery_Click(null, null);//需要刷新一下页面,更新PU中输入的错误时间信息foreach (object SelectIndex in CheckBoxSelectedIndex)//遍历动态数组中的索引,挨个将复选框进行选中 {_page.SetGridRowSelected(ConvertFunction.ObjToInt32(SelectIndex), true);}}catch (Exception ex){_page.ShowMessage(ex.Message);}}} }