CodeSmith系列(二)——使用CodeSmith生成ASP.NET后台代码

简介: 因为表单的后台代码都差不多,所以采用了CodeSmith生成。由于表单的控制是基于XML的,所以可以根据XML自定义生成。由于没时间,就不多写了,具体模板代码见最后。 在这里,先选择变量。如下: XMl文件内容如下: 付款确认单 360 ...
   因为表单的后台代码都差不多,所以采用了CodeSmith生成。由于表单的控制是基于XML的,所以可以根据XML自定义生成。由于没时间,就不多写了,具体模板代码见最后。
在这里,先选择变量。如下:
 
XMl文件内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<FieldConfig>
  <GlobalDefaultConfig>
    <Description>付款确认单</Description>
    <Width>360</Width>
  </GlobalDefaultConfig>
  <Fields>
    <Group Title="表单信息" Columns="2">
      <Field TextControlID="txtAreaName" Disabled="true">所属大区</Field>
      <Field TextControlID="txtBranchCompany" Disabled="true">所属分公司</Field>
      <Field TextControlID="txtProvince" Disabled="true">所属省份</Field>
      <Field TextControlID="txtCitys" Disabled="true">所属城市</Field>
      <Field TextControlID="txtShopName" Disabled="true" MaxLength="20">门店名称</Field>
      <Field TextControlID="txtName" Disabled="true">主持老师</Field>
      <Field TextControlID="txtOracleNO" Disabled="true">Oralce号</Field>
      <Field TextControlID="txtMarginNumber" Disabled="true">保证金号码号</Field>
      <Field TextControlID="txtPayTime" AllowBlank="false">付款时间</Field>
      <Field TextControlID="txtPayer" AllowBlank="false">付款人</Field>
      <Field TextControlID="tblPaymentAmount" AllowBlank="false">付款金额(元)</Field>
      <Field TextControlID="ddlCollectingCompany" AllowBlank="false">收款公司名称</Field>
      <Field TextControlID="ddlDueBank" AllowBlank="false">收款银行名称</Field>
      <Field TextControlID="ddlCollectingBankAccount" AllowBlank="false">收款银行帐号</Field>
      <Field TextControlID="txtBranchContacts">分公司联系人</Field>
      <Field TextControlID="txtContactPhoneNumber">联系电话</Field>
      <Field TextControlID="tblFinancialConfirm" Disabled="true">财务确认</Field>
      <!--<Field TextControlID="cblFinancialConfirm">财务确认</Field>-->
    </Group>
  </Fields>
  <Controls>
    <Control>
      <QueryStrings>
        <!--培训阶段-->
        <Query Name="DriverPhasesid">1E355FC6D4A744F4AF11BB0811E2A066</Query>
      </QueryStrings>
      <Disabled FieldsName="AttributeValue">
        <ControlField>加盟套餐费(元)</ControlField>
        <ControlField>改型套餐费(元)</ControlField>
        <ControlField>保证金(元)</ControlField>
        <ControlField>虹膜套餐款(元)</ControlField>
        <ControlField>虹膜续约款(元)</ControlField>
      </Disabled>
      <!--<ControlField Disabled="true">Cost1</ControlField>
      <ControlField Disabled="true">Cost2</ControlField>
      <ControlField Disabled="true">Cost3</ControlField>
      <ControlField Disabled="true">Cost4</ControlField>
      <ControlField Disabled="true">Cost5</ControlField>
      <ControlField Disabled="true">ddfBank1</ControlField>
      <ControlField Disabled="true">ddfBank2</ControlField>
      <ControlField Disabled="true">ddfBank3</ControlField>
      <ControlField Disabled="true">ddfBank4</ControlField>
      <ControlField Disabled="true">ddfBank5</ControlField>-->
    </Control>
    <Control>
      <QueryStrings>
        <!--签约阶段-->
        <Query Name="DriverPhasesid">72512CBA542E43029B91F9FB3155D4DD</Query>
      </QueryStrings>
      <!--<ControlField Disabled="true">Cost0</ControlField>
      <ControlField Disabled="true">Cost2</ControlField>
      <ControlField Disabled="true">Cost4</ControlField>
      <ControlField Disabled="true">Cost5</ControlField>-->
      <Disabled FieldsName="AttributeValue">
        <ControlField>培训费(元)</ControlField>
        <!--<ControlField>加盟套餐费</ControlField>-->
        <ControlField>改型套餐费(元)</ControlField>
        <!--<ControlField>保证金</ControlField>-->
        <ControlField>虹膜套餐款(元)</ControlField>
        <ControlField>虹膜续约款(元)</ControlField>
      </Disabled>
    </Control>
    <Control>
      <QueryStrings>
        <!--续约-->
        <Query Name="DriverPhasesid">BDA31689C7B54F4EAE925A5390F56C99</Query>
      </QueryStrings>
      <!--<ControlField Disabled="true">Cost0</ControlField>
      <ControlField Disabled="true">Cost1</ControlField>
      <ControlField Disabled="true">Cost2</ControlField>
      <ControlField Disabled="true">Cost4</ControlField>
      <ControlField Disabled="true">Cost5</ControlField>-->
      <Disabled FieldsName="AttributeValue">
        <ControlField>培训费(元)</ControlField>
        <ControlField>加盟套餐费(元)</ControlField>
        <ControlField>改型套餐费(元)</ControlField>
        <!--<ControlField>保证金</ControlField>-->
        <ControlField>虹膜套餐款(元)</ControlField>
        <ControlField>虹膜续约款(元)</ControlField>
      </Disabled>
    </Control>
    <Control>
      <QueryStrings>
        <!--改型-->
        <Query Name="DriverPhasesid">DEB4897EBD28440AB0C60F5D27ED677E</Query>
      </QueryStrings>
      <!--<ControlField Disabled="true">Cost0</ControlField>
      <ControlField Disabled="true">Cost1</ControlField>
      <ControlField Disabled="true">Cost4</ControlField>
      <ControlField Disabled="true">Cost5</ControlField>-->
      <Disabled FieldsName="AttributeValue">
        <ControlField>培训费(元)</ControlField>
        <ControlField>加盟套餐费(元)</ControlField>
        <!--<ControlField>改型套餐费</ControlField>-->
        <!--<ControlField>保证金</ControlField>-->
        <ControlField>虹膜套餐款(元)</ControlField>
        <ControlField>虹膜续约款(元)</ControlField>
      </Disabled>
    </Control>
    <Control>
      <QueryStrings>
        <!--转约-->
        <Query Name="DriverPhasesid">464BEE8157B943B1AC9C3930FD6D774C</Query>
      </QueryStrings>
      <!--<ControlField Disabled="true">Cost0</ControlField>
      <ControlField Disabled="true">Cost1</ControlField>
      <ControlField Disabled="true">Cost2</ControlField>
      <ControlField Disabled="true">Cost5</ControlField>-->
      <Disabled FieldsName="AttributeValue">
        <ControlField>培训费(元)</ControlField>
        <ControlField>加盟套餐费(元)</ControlField>
        <ControlField>改型套餐费(元)</ControlField>
        <!--<ControlField>保证金</ControlField>-->
        <!--<ControlField>虹膜套餐款</ControlField>-->
        <ControlField>虹膜续约款(元)</ControlField>
      </Disabled>
    </Control>
    <Control>
      <QueryStrings>
        <!--虹膜续约-->
        <Query Name="DriverPhasesid">6E022231D0AC41EFAD8E685D0B5FB768</Query>
        <Query Name="DriverPhasesid">60846B34E4F8482297192A2A0AE5D068</Query>
        <Query Name="DriverPhasesid">CFCFB79EA19F4B529819641E02EE8EE5</Query>
      </QueryStrings>
      <!--<ControlField Disabled="true">Cost0</ControlField>
      <ControlField Disabled="true">Cost1</ControlField>
      <ControlField Disabled="true">Cost2</ControlField>
      <ControlField Disabled="true">Cost3</ControlField>
      <ControlField Disabled="true">Cost4</ControlField>-->
      <Disabled FieldsName="AttributeValue">
        <ControlField>培训费(元)</ControlField>
        <ControlField>加盟套餐费(元)</ControlField>
        <ControlField>改型套餐费(元)</ControlField>
        <ControlField>保证金(元)</ControlField>
        <ControlField>虹膜套餐款(元)</ControlField>
        <!--<ControlField>虹膜续约款</ControlField>-->
      </Disabled>
    </Control>
  </Controls>
</FieldConfig>
生成的代码如下:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Ext.Net;
using NBShopService;
using NBShopCommon;                     //辅助类库
using NBShopCommon.Ext;                 //Ext函数库以及扩展方法
using System.Collections.Generic;
namespace NBShop.UserControls.Form
{   
    /// <summary>
    /// 付款确认单
    /// </summary>
    public partial class ConfirmationForPayment : System.Web.UI.UserControl
    {
        #region 公共属性
        /// <summary>
        /// 店铺ID
        /// </summary>
        public string ShopID
        {
            get
            {
                return Request.QueryString["ObjectID"]??Request.QueryString["ShopID"];
            }
        }
        /// <summary>
        /// 表单类型
        /// </summary>
        public string FormType
        {
            get
            {
                return Request.QueryString["FormType"];
            }

        }
        /// <summary>
        /// 当前表单ID
        /// </summary>
        public string CurrentFormID
        {
            get
            {
                return (ViewState["CurrentFormID"] ?? string.Empty).ToString();
            }
            set
            {
                ViewState["CurrentFormID"] = value;
            }
        }
     #endregion
        protected void Page_Load(object sender, EventArgs e)
        {
            //在SharePoint中赋予权限加载Ext资源文件
            ResourceManager1.BuildAllPrivilegesForExtNET();
            //注册jquery脚本文件
            this.Page.ClientScript.RegisterClientScriptInclude("JQuery4.4", "/js/jquery-1.4.4.min.js");
            try
            {
                //绑定数据,设置界面逻辑
                Loading();
            }
            catch (Exception ex)
            {
                //记录错误日志
                LogManager.WriteErrorLog(ex);
            }
        }
        
        /// <summary>
        ///  绑定数据,设置界面逻辑
        /// </summary>
        private void Loading()
        {
          using (NBShopDataContext _db = new NBShopDataContext())
          {
            #region 设置参数
            if (!IsPostBack)
            {
               //设置审批列表的加载路径和参数
               pnlExamineList.AutoLoad.Url = "/FormServerTemplates/ExamineList.aspx?PTCode=" + Request.QueryString["PTCode"] + "&TaskId=" + Request.QueryString["TaskId"];
               ///加载配置(使用的是扩展方法,用于配置Ext控件)
               this.LoadConfigs("ConfirmationForPayment", Context);
               //TODO:设置参数
               #region 绑定下拉列表
                    #region 绑定收款公司名称
                    //TODO:请绑定下拉列表收款公司名称
                    //ExtControlHelper.BindComobox(this, _db.SelectGeneralFromTableINFO(ShopID, CurrentFormID, 
                    //"CollectingCompany").ToList()
                    //, "ddlCollectingCompany", "AttributeValue", "AttributeID", "所选值");
                    #endregion
                    #region 绑定收款银行名称
                    //TODO:请绑定下拉列表收款银行名称
                    //ExtControlHelper.BindComobox(this, _db.SelectGeneralFromTableINFO(ShopID, CurrentFormID, 
                    //"DueBank").ToList()
                    //, "ddlDueBank", "AttributeValue", "AttributeID", "所选值");
                    #endregion
                    #region 绑定收款银行帐号
                    //TODO:请绑定下拉列表收款银行帐号
                    //ExtControlHelper.BindComobox(this, _db.SelectGeneralFromTableINFO(ShopID, CurrentFormID, 
                    //"CollectingBankAccount").ToList()
                    //, "ddlCollectingBankAccount", "AttributeValue", "AttributeID", "所选值");
                    #endregion
               #endregion
                var _context = _db.SelectConfirmationForPaymentINFO(ShopID).FirstOrDefault();
                    if (_context!=null)
                    {
                         //设置控件的值
                         this.SetControlValues(_context);
                         if (!string.IsNullOrEmpty(_context.ConfirmationForPaymentID))
                         {
                              CurrentFormID = _context.ConfirmationForPaymentID;
                         }
                         else
                         {
                              CurrentFormID = _db.GetNewGuid();
                         }
                    }
            }
            #endregion
               
               
             }
            GC.Collect();
        }

        //保存
        protected void btnSave_Click(object sender, DirectEventArgs e)
        {
            try
            {
                //显示保存进度条
                X.Msg.Show(new MessageBoxConfig
                {
                    Message = "正在保存数据, 请稍后...",
                    ProgressText = "正在保存数据...",
                    Width = 300,
                    Wait = true,
                    WaitConfig = new WaitConfig { Interval = 200 },
                    IconCls = "ext-mb-download",
                    AnimEl = this.btnSave.ClientID
                });
                if (Save())
                {
                    //执行流程驱动
                    ResourceManager1.SetSubmitScript(ShopID, false);
                }
            }
            catch (Exception ex)
            {
                NBShopCommon.LogManager.WriteErrorLog(ex);
                ResourceManager1.AddScript(" setTimeout(function () { Ext.MessageBox.hide(); Ext.Msg.notify('完成', '保存失败!'); }, 1000);");
            }

        }
        //保存数据
        private bool Save()
        {
           //实例化LINQ To SQl类上下文对象
           NBShopDataContext _db = new NBShopDataContext();
           try
           {
               if (_db.Connection.State == ConnectionState.Closed)
                   _db.Connection.Open();
               //事务开始
               _db.Transaction = _db.Connection.BeginTransaction(System.Data.IsolationLevel.Serializable);
               //TODO:保存数据
               
               //提交事务
               _db.Transaction.Commit();
               
               //ObjectService _os = new ObjectService();
               //bool _bobjprc = _os.SaveObjectProcessInfo(Request.QueryString["ObjectID"] ?? string.Empty, Request.QueryString["PTCode"] ?? string.Empty);
               //bool _bobjnp = _os.SaveObjectPN(Request.QueryString["ObjectID"] ?? string.Empty, Request.QueryString["PhasesId"] ?? string.Empty);
               return true;
           }
           catch (Exception ex)
           {
               //回滚事务
               _db.Transaction.Rollback();
               LogManager.WriteErrorLog(ex);
               ResourceManager1.AddScript(" setTimeout(function () { Ext.MessageBox.hide(); Ext.Msg.notify('完成', '保存数据失败!');}, 3000);");
               return false;
           }
        }
        //提交
        protected void btnSubmit_Click(object sender, DirectEventArgs e)
        {
            try
            {
               //显示提交进度条
                X.Msg.Show(new MessageBoxConfig
                {
                    Message = "正在提交数据, 请稍后...",
                    ProgressText = "正在提交数据...",
                    Width = 300,
                    Wait = true,
                    WaitConfig = new WaitConfig { Interval = 200 },
                    IconCls = "ext-mb-download",
                    AnimEl = this.btnSumbit2.ClientID
                });
                if (Save())
                {
                    //流程操作并执行脚本
                    ResourceManager1.SetSubmitScript(ShopID, true);
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteErrorLog(ex);
                ResourceManager1.AddScript(" setTimeout(function () { Ext.MessageBox.hide();Ext.Msg.notify('完成', '提交失败!'); }, 2000);");
            }
        }
    }
}

模板代码如下:

<%-- 
Name: 根据XML生成用户控件表单
Author: LWQ
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="C#" ResponseEncoding="UTF-8" Description="生成Ext.NET用户控件处理代码" CompilerVersion="v3.5" %>
<%@ Property Name="ClassName" Type="System.String" Default="" Optional="True" Category="Optional" Description="用户控件名称。" %>
<%--加载使用访问数据库的组件SchemaExplorer,并声明其使用的命名空间。--%>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context"  Description="对应的数据主表" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>
<%@ Import Namespace="System.Windows.Forms.Design"%>
<%@ Assembly Name="System.Design" %>
<%@ Import Namespace="System.Xml.Linq" %>
<%@ Assembly Name="System.Xml.Linq" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.IO" %>
<script runat="template">
     ///配置文件路径
     private string _userFileName = string.Empty;
     [Editor(typeof(FileNameEditor), typeof(System.Drawing.Design.UITypeEditor)),Category("Custom"), Description("请选择配置XML文件。")]
     public string UserFileName
     {
          get {return _userFileName;}
          set {_userFileName= value;}
     }
     XElement elements =null;
     //返回XML的Key。
      public string GetFormKey()
     {
          return ClassName;
     }
</script>
<%
      if(File.Exists(_userFileName))
      {
          elements = XElement.Load(_userFileName);
      }
%>
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Ext.Net;
using NBShopService;
using NBShopCommon;                     //辅助类库
using NBShopCommon.Ext;                 //Ext函数库以及扩展方法
using System.Collections.Generic;
namespace NBShop.UserControls.Form
{   
    <% if(elements.Element("GlobalDefaultConfig").Element("Description")!=null) {%>
    /// <summary>
    /// <%=elements.Element("GlobalDefaultConfig").Element("Description").Value %>
    /// </summary>
    <% } %>
    public partial class <%=ClassName%> : System.Web.UI.UserControl
    {
        #region 公共属性
        /// <summary>
        /// 店铺ID
        /// </summary>
        public string ShopID
        {
            get
            {
                return Request.QueryString["ObjectID"]??Request.QueryString["ShopID"];
            }
        }
        /// <summary>
        /// 表单类型
        /// </summary>
        public string FormType
        {
            get
            {
                return Request.QueryString["FormType"];
            }

        }
        /// <summary>
        /// 当前表单ID
        /// </summary>
        public string CurrentFormID
        {
            get
            {
                return (ViewState["CurrentFormID"] ?? string.Empty).ToString();
            }
            set
            {
                ViewState["CurrentFormID"] = value;
            }
        }
     #endregion
        protected void Page_Load(object sender, EventArgs e)
        {
            //在SharePoint中赋予权限加载Ext资源文件
            ResourceManager1.BuildAllPrivilegesForExtNET();
            //注册jquery脚本文件
            this.Page.ClientScript.RegisterClientScriptInclude("JQuery4.4", "/js/jquery-1.4.4.min.js");
            try
            {
                //绑定数据,设置界面逻辑
                Loading();
            }
            catch (Exception ex)
            {
                //记录错误日志
                LogManager.WriteErrorLog(ex);
            }
        }
        
        /// <summary>
        ///  绑定数据,设置界面逻辑
        /// </summary>
        private void Loading()
        {
          using (NBShopDataContext _db = new NBShopDataContext())
          {
            #region 设置参数
            if (!IsPostBack)
            {
               //设置审批列表的加载路径和参数
               pnlExamineList.AutoLoad.Url = "/FormServerTemplates/ExamineList.aspx?PTCode=" + Request.QueryString["PTCode"] + "&TaskId=" + Request.QueryString["TaskId"];
               ///加载配置(使用的是扩展方法,用于配置Ext控件)
               this.LoadConfigs("<%=ClassName%>", Context);
               //TODO:设置参数
                 <% 
                    if(elements.Descendants("Field").Where(p=>p.Attribute("TextControlID").Value.Substring(0,3)=="ddl").Count()>0){
                 %>
               #region 绑定下拉列表
               <%
                    var ddls = elements.Descendants("Field").Where(p => p.Attribute("TextControlID").Value.Substring(0, 3) == "ddl");
                    foreach (var item in ddls){
               %>
                    #region 绑定<%=item.Value%>
                    //TODO:请绑定下拉列表<%=item.Value%>
                    //ExtControlHelper.BindComobox(this, _db.SelectGeneralFromTableINFO(ShopID, CurrentFormID, 
                    //"<%=item.Attribute("AttributeTypeCode")==null?item.Attribute("TextControlID").Value.Substring(3):item.Attribute("AttributeTypeCode").Value %>").ToList()
                    //, "<%=item.Attribute("TextControlID").Value %>", "AttributeValue", "AttributeID", "所选值");
                    #endregion
               <% }%>
               #endregion
               <%} %>
                var _context = _db.Select<%=ClassName%>INFO(ShopID).FirstOrDefault();
                    if (_context!=null)
                    {
                         //设置控件的值
                         this.SetControlValues(_context);
                         if (!string.IsNullOrEmpty(_context.<%=ClassName%>ID))
                         {
                              CurrentFormID = _context.<%=ClassName%>ID;
                         }
                         else
                         {
                              CurrentFormID = _db.GetNewGuid();
                         }
                    }
            }
            #endregion
               <% 
               if(elements.Descendants("Field").Where(p=>p.Attribute("TextControlID").Value.Substring(0,3)=="cbl").Count()>0){
               %>
                    #region 绑定复选框组
                    <%
                         var cbos = elements.Descendants("Field").Where(p => p.Attribute("TextControlID").Value.Substring(0, 3) == "cbl");
                         foreach (var item in cbos){
                    %>
                         #region 绑定<%=item.Value%>
                         //TODO:请绑定复选框组<%=item.Value%>
                         //ExtControlHelper.BindCheckGroup(this, _db.SelectGeneralFromTableINFO(ShopID, CurrentFormID,
                         //"<%=item.Attribute("AttributeTypeCode")==null?item.Attribute("TextControlID").Value.Substring(3):item.Attribute("AttributeTypeCode").Value %>").ToList()
                         //, "<%=item.Attribute("TextControlID").Value %>", "AttributeValue", "AttributeID", "CheckValue",4);
                         #endregion
                    <% }%>
                    #endregion
               <%} %>
               
               
               <% 
               if(elements.Descendants("Field").Where(p=>p.Attribute("TextControlID").Value.Substring(0,3)=="rbl").Count()>0){
               %>
                    #region 绑定单选框组
                    <%
                         var rdos = elements.Descendants("Field").Where(p => p.Attribute("TextControlID").Value.Substring(0, 3) == "rbl");
                         foreach (var item in rdos){
                    %>
                         #region 绑定<%=item.Value%>
                         //TODO:请绑定单选框组<%=item.Value%>
                         //ExtControlHelper.BindRadioGroup(this, _db.SelectGeneralFromTableINFO(ShopID, CurrentFormID, 
                         //"<%=item.Attribute("AttributeTypeCode")==null?item.Attribute("TextControlID").Value.Substring(3):item.Attribute("AttributeTypeCode").Value %>").ToList()
                         //, "<%=item.Attribute("TextControlID").Value %>", "AttributeValue", "AttributeID", "CheckValue",true,4);
                         #endregion
                    <% }%>
                    #endregion
               <%} %>
             }
            GC.Collect();
        }

        //保存
        protected void btnSave_Click(object sender, DirectEventArgs e)
        {
            try
            {
                //显示保存进度条
                X.Msg.Show(new MessageBoxConfig
                {
                    Message = "正在保存数据, 请稍后...",
                    ProgressText = "正在保存数据...",
                    Width = 300,
                    Wait = true,
                    WaitConfig = new WaitConfig { Interval = 200 },
                    IconCls = "ext-mb-download",
                    AnimEl = this.btnSave.ClientID
                });
                if (Save())
                {
                    //执行流程驱动
                    ResourceManager1.SetSubmitScript(ShopID, false);
                }
            }
            catch (Exception ex)
            {
                NBShopCommon.LogManager.WriteErrorLog(ex);
                ResourceManager1.AddScript(" setTimeout(function () { Ext.MessageBox.hide(); Ext.Msg.notify('完成', '保存失败!'); }, 1000);");
            }

        }
        //保存数据
        private bool Save()
        {
           //实例化LINQ To SQl类上下文对象
           NBShopDataContext _db = new NBShopDataContext();
           try
           {
               if (_db.Connection.State == ConnectionState.Closed)
                   _db.Connection.Open();
               //事务开始
               _db.Transaction = _db.Connection.BeginTransaction(System.Data.IsolationLevel.Serializable);
               //TODO:保存数据
               
               //提交事务
               _db.Transaction.Commit();
               
               //ObjectService _os = new ObjectService();
               //bool _bobjprc = _os.SaveObjectProcessInfo(Request.QueryString["ObjectID"] ?? string.Empty, Request.QueryString["PTCode"] ?? string.Empty);
               //bool _bobjnp = _os.SaveObjectPN(Request.QueryString["ObjectID"] ?? string.Empty, Request.QueryString["PhasesId"] ?? string.Empty);
               return true;
           }
           catch (Exception ex)
           {
               //回滚事务
               _db.Transaction.Rollback();
               LogManager.WriteErrorLog(ex);
               ResourceManager1.AddScript(" setTimeout(function () { Ext.MessageBox.hide(); Ext.Msg.notify('完成', '保存数据失败!');}, 3000);");
               return false;
           }
        }
        //提交
        protected void btnSubmit_Click(object sender, DirectEventArgs e)
        {
            try
            {
               //显示提交进度条
                X.Msg.Show(new MessageBoxConfig
                {
                    Message = "正在提交数据, 请稍后...",
                    ProgressText = "正在提交数据...",
                    Width = 300,
                    Wait = true,
                    WaitConfig = new WaitConfig { Interval = 200 },
                    IconCls = "ext-mb-download",
                    AnimEl = this.btnSumbit2.ClientID
                });
                if (Save())
                {
                    //流程操作并执行脚本
                    ResourceManager1.SetSubmitScript(ShopID, true);
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteErrorLog(ex);
                ResourceManager1.AddScript(" setTimeout(function () { Ext.MessageBox.hide();Ext.Msg.notify('完成', '提交失败!'); }, 2000);");
            }
        }
    }
}
目录
相关文章
【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
107 1
|
C# 开发者 Windows
在VB.NET项目中使用C#编写的代码
在VB.NET项目中使用C#编写的代码
221 0
|
12月前
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
284 13
|
开发框架 .NET PHP
ASP.NET Web Pages - 添加 Razor 代码
ASP.NET Web Pages 使用 Razor 标记添加服务器端代码,支持 C# 和 Visual Basic。Razor 语法简洁易学,类似于 ASP 和 PHP。例如,在网页中加入 `@DateTime.Now` 可以实时显示当前时间。
|
敏捷开发 缓存 中间件
.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素
本文深入探讨了.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素,并通过企业级应用和Web应用开发的实践案例,展示了如何在实际项目中应用这些模式,旨在为开发者提供有益的参考和指导。
127 3
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
800 1
|
前端开发 JavaScript C#
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
300 0
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
127 3
|
Kubernetes 监控 Devops
【独家揭秘】.NET项目中的DevOps实践:从代码提交到生产部署,你不知道的那些事!
【8月更文挑战第28天】.NET 项目中的 DevOps 实践贯穿代码提交到生产部署全流程,涵盖健壮的源代码管理、GitFlow 工作流、持续集成与部署、容器化及监控日志记录。通过 Git、CI/CD 工具、Kubernetes 及日志框架的最佳实践应用,显著提升软件开发效率与质量。本文通过具体示例,助力开发者构建高效可靠的 DevOps 流程,确保项目成功交付。
276 0
|
XML 开发框架 .NET
.NET框架:软件开发领域的瑞士军刀,如何让初学者变身代码艺术家——从基础架构到独特优势,一篇不可错过的深度解读。
【8月更文挑战第28天】.NET框架是由微软推出的统一开发平台,支持多种编程语言,简化应用程序的开发与部署。其核心组件包括公共语言运行库(CLR)和类库(FCL)。CLR负责内存管理、线程管理和异常处理等任务,确保代码稳定运行;FCL则提供了丰富的类和接口,涵盖网络、数据访问、安全性等多个领域,提高开发效率。此外,.NET框架还支持跨语言互操作,允许开发者使用C#、VB.NET等语言编写代码并无缝集成。这一框架凭借其强大的功能和广泛的社区支持,已成为软件开发领域的重要工具,适合初学者深入学习以奠定职业生涯基础。
307 1