-
参考 ZnbmHrzz/HrzzbTxqy/Index (通行区域)
几点:
1、ZNBM\eKing.SzdfPage\Areas\ZnbmHrzz\HRZZB\HrzzbTxqy\EkSzdfDetailForm.cs
设置录入控件
2、Management\Areas\ZnbmHrzz\Views\HrzzbTxqy\Index.cshtml
绘制HTML
-
// Website\Management\Content\js\ZNBM\znbm.ek.js
function EkGetSaveDetailData(pI, ekCode, pkId) {
// 将保存内容装入Ajax的数组中,用于ajax实现 //
// pI == 搜索控件所在的容器(div) ==> 如果 pI == null 则整个网页 //
// ekCode == 控件元素searchcode对应的代号
// 获得保存的数据 //
var theResult = [];
theResult.push({ name: "_id", value: pkId });
var eA = null;
if (pI == null) {
// 如果没有指定容器 //
eA = $("[savecode=" + ekCode + "]");
}
else {
// 如果指定了容器 //
eA = $("#" + pI).find("[savecode=" + ekCode + "]");
}
var eALen = eA.length;
var i = 0;
var eI = null;
var eId = null;
var eName = null;
var eValue = null;
for (i = 0; i < eALen; ++i) {
eI = eA[i];
if (eI == null)
continue;
eId = eI.id;
if (eId == null || eId == "" || eId == undefined)
continue;
eValue = EkGetCtrlValue(eI);
eName = eId;
theResult.push({ name: eName, value: eValue });
}
return theResult;
}
// 保存记录集合 //
function BaseAjaxGetSaveDetailData(pkId) {
// 构建保存记录的集合 //
var theResult = EkGetSaveDetailData("add_box", "a", pkId);
return theResult;
}
-
// Website\Management\Content\js\ZNBM\znbm.ek.js
function BaseJsCheckInput(pkId) {
// JS 校验 //
var checkResult = EkJudgeValidate(pkId, "add_box", "a");
if (!checkResult) {
return false;
}
return true;
}
// Website\Management\Content\js\ZNBM\znbm.ekcheck.js
function EkJudgeValidate(pkId, containerId, ekCode) {
// 输入校验 //
var eA = null;
if (containerId == null) {
// 如果没有指定容器 //
eA = $("[checkcode=" + ekCode + "]");
}
else {
// 如果指定了容器 //
eA = $("#" + containerId).find("[checkcode=" + ekCode + "]");
}
var eALen = eA.length;
var i = 0;
var eI = null;
var checkResult = true;
for (i = 0; i < eALen; ++i) {
eI = eA[i];
// 校验结果 //
checkResult = EkJudgeValidateByThis(pkId, eI);
if (!checkResult)
return false;
// 移除校验错误提示 //
EkFocusCtrlRemoveCheckError(eI);
}
return checkResult;
}
-
// Website\Management\Content\js\ZNBM\index.sea.js
// 录入页面保存事件 //
$('[data-role="submit_form"]').on("click", function () {
// 获得关键字 //
var pkId = $("#add_box").attr("data-guid");
if (pkId == undefined) {
// 如果未设置,设置成空 //
pkId = "";
}
if (EPI.IsOverrideJsCheckInput) {
// 自定义校验JS //
if (!JsCheckInput(pkId)) {
return;
}
}
else {
// 缺省方法校验JS //
if (!BaseJsCheckInput(pkId)) {
return;
}
}
// 显示浮层 //
showLoad(true);
// 获得Ajax的Url地址 //
// 缺省是 DetailSave //
var ajaxUrl = GlobalPhyPath + "/" + EPI.DetailSaveUrl;
// 获得搜索的数据 //
var ajxData = null;
if (EPI.IsOverrideAjaxGetSaveDetailData) {
// 需要自定义方法获得保存的数据 //
ajxData = AjaxGetSaveDetailData(pkId);
}
else {
// 缺省的方法获得保存数据 //
ajxData = BaseAjaxGetSaveDetailData(pkId);
}
$.ajax({
cache: false,
async: true,
url: ajaxUrl,
type: "post",
data: ajxData,
success: function (rData) {
// 保存返回结果 //
// 为null,未知的异常,不做处理 //
if (rData == null)
return;
// 保存成功 //
if (rData.IsSucc) {
showLoad(false);
if (EPI.IsLoadTree) {
// 如果是加载树 //
// 提示成功并刷新页面 //
alert(rData.Msg);
// 重新刷新页面 //
EkPageReload();
}
else {
// 重新绑定当前页 //
getList($("#" + EPI.TableId).attr("pageindex"));
}
}
else {
// 保存失败的提示 //
alert(rData.Msg);
}
}
});
});
-
<!--添加/编辑弹窗-->
<div class="alert_box" id="add_box" data-role="alert_box" data-guid="" >
<div class="alert_tit" data-role="alert_tit">
<span id="span_detail">添加记录</span><i class="a_close" data-role="alert_close"></i>
</div>
<div class="n_aciton">
<table class="n_table">
<tr>
<td class="t_r ek-tr-width">
<span class="ek-p-r5"><em class="c_red p_r5">*</em>名称:</span>
</td>
<td>
<input type="text" id="ctrld_TheName" class="input_txt" style="width:98%;" err="名称" checkexpession="NotNull" checkcode="a" savecode="a" setcode="a" setvaluedatacolumnname="TheName" />
</td></tr><tr>
<td class="t_r ek-tr-width">
<span class="ek-p-r5"><em class="c_red p_r5">*</em>代号:</span>
</td>
<td>
<input type="text" id="ctrld_TheCode" class="input_txt" style="width:98%;" err="代号" checkexpession="NotNull" checkcode="a" ValidExtendCode="basecheckunique" savecode="a" setcode="a" setvaluedatacolumnname="TheCode" />
</td></tr><tr>
<td class="t_r ek-tr-width">
<span class="ek-p-r5"><em class="c_red p_r5">*</em>显示顺序:</span>
</td>
<td>
<input type="text" id="ctrld_ShowSeq" class="input_txt" style="width:98%;" err="显示顺序" checkexpession="Num" checkcode="a" savecode="a" setcode="a" setvaluedatacolumnname="ShowSeq" />
</td></tr><tr>
<td class="t_r ek-tr-width">
<span class="ek-p-r5">描述:</span>
</td>
<td>
<textarea id="ctrld_TheText" style="width:98%;height:100px;" savecode="a" setcode="a" setvaluedatacolumnname="TheText"></textarea>
</td></tr><tr>
<td class="t_r ek-tr-width">
<span class="ek-p-r5">备注:</span>
</td>
<td>
<textarea id="ctrld_Remark" style="width:98%;height:100px;" savecode="a" setcode="a" setvaluedatacolumnname="Remark"></textarea>
</td></tr>
</table>
</div>
<div class="c_action"><button class="con_btn m_r10" data-role="submit_form">确定</button><button class="cc_btn" data-role="be_close">取消</button></div>
</div>
<!--添加/编辑弹窗 End -->
-
// Website\Management\Areas\ZnbmHrzz\Views\HrzzbTxqy\Index.cshtml
<!--添加/编辑弹窗-->
<div class="alert_box" id="add_box" data-role="alert_box" data-guid="" >
<div class="alert_tit" data-role="alert_tit">
<span id="span_detail">添加记录</span><i class="a_close" data-role="alert_close"></i>
</div>
<div class="n_aciton">
<table class="n_table">
<tr>
<td class="t_r ek-tr-width">
@Html.Raw(@eKp.DetailForm._TheName.PrintDetailLabel())
</td>
<td>
@Html.Raw(@eKp.DetailForm._TheName.PrintHTML())
</td></tr><tr>
<td class="t_r ek-tr-width">
@Html.Raw(@eKp.DetailForm._TheCode.PrintDetailLabel())
</td>
<td>
@Html.Raw(@eKp.DetailForm._TheCode.PrintHTML())
</td></tr><tr>
<td class="t_r ek-tr-width">
@Html.Raw(@eKp.DetailForm._ShowSeq.PrintDetailLabel())
</td>
<td>
@Html.Raw(@eKp.DetailForm._ShowSeq.PrintHTML())
</td></tr><tr>
<td class="t_r ek-tr-width">
@Html.Raw(@eKp.DetailForm._TheText.PrintDetailLabel())
</td>
<td>
@Html.Raw(@eKp.DetailForm._TheText.PrintHTML())
</td></tr><tr>
<td class="t_r ek-tr-width">
@Html.Raw(@eKp.DetailForm._Remark.PrintDetailLabel())
</td>
<td>
@Html.Raw(@eKp.DetailForm._Remark.PrintHTML())
</td></tr>
</table>
</div>
<div class="c_action"><button class="con_btn m_r10" data-role="submit_form">确定</button><button class="cc_btn" data-role="be_close">取消</button></div>
</div>
<!--添加/编辑弹窗 End -->
-
// \ZNBM\eKing.SzdfPage\Areas\ZnbmHrzz\HRZZB\HrzzbTxqy\EkSzdfDetailForm.cs
using eKing.EkPageCreate.IWebCtrls;
using System;
using System.Web.UI.WebControls;
using eKing.EkPageCreate.CtrlNames;
using eKing.SzdfPage.WebCtrls;
using SlowX.Core.Classes;
/// <summary>
/// <para>表名:UTB_SZDF_HRZZB_TXQY</para>
/// <para>注释:通行证通行区域</para>
/// <para>逻辑类:eKing.SzdfLib.Business.HRZZB.UTB_SZDF_HRZZB_TXQY</para>
/// </summary>
namespace eKing.SzdfPage.Areas.ZnbmHrzz.HRZZB.HrzzbTxqy
{
/// <summary>
/// <para>表名:UTB_SZDF_HRZZB_TXQY</para>
/// <para>逻辑类:eKing.SzdfLib.Business.HRZZB.UTB_SZDF_HRZZB_TXQY</para>
/// </summary>
[Serializable]
public partial class EkSzdfDetailForm
:
EkxPageDetailForm
{
/// <summary>
/// <para>表名:UTB_SZDF_HRZZB_TXQY</para>
/// <para>逻辑类:eKing.SzdfLib.Business.HRZZB.UTB_SZDF_HRZZB_TXQY</para>
/// </summary>
public EkSzdfDetailForm()
{
// UTB_SZDF_HRZZB_TXQY //
// eKing.SzdfLib.Business.HRZZB.UTB_SZDF_HRZZB_TXQY //
InitClass();
}
#region 控件
#region TheName - 名称
/// <summary>
/// TheName - 名称
/// </summary>
protected EkxPageInputCtrl m_TheName
=
null;
/// <summary>
/// TheName - 名称
/// </summary>
public EkxPageInputCtrl _TheName
{
get
{
return m_TheName;
}
}
#endregion TheName - 名称
#region TheCode - 代号
/// <summary>
/// TheCode - 代号
/// </summary>
protected EkxPageInputCtrl m_TheCode
=
null;
/// <summary>
/// TheCode - 代号
/// </summary>
public EkxPageInputCtrl _TheCode
{
get
{
return m_TheCode;
}
}
#endregion TheCode - 代号
#region ShowSeq - 显示顺序
/// <summary>
/// ShowSeq - 显示顺序
/// </summary>
protected EkxPageInputCtrl m_ShowSeq
=
null;
/// <summary>
/// ShowSeq - 显示顺序
/// </summary>
public EkxPageInputCtrl _ShowSeq
{
get
{
return m_ShowSeq;
}
}
#endregion ShowSeq - 显示顺序
#region TheText - 描述
/// <summary>
/// TheText - 描述
/// </summary>
protected EkxPageInputCtrl m_TheText
=
null;
/// <summary>
/// TheText - 描述
/// </summary>
public EkxPageInputCtrl _TheText
{
get
{
return m_TheText;
}
}
#endregion TheText - 描述
#region Remark - 备注
/// <summary>
/// Remark - 备注
/// </summary>
protected EkxPageInputCtrl m_Remark
=
null;
/// <summary>
/// Remark - 备注
/// </summary>
public EkxPageInputCtrl _Remark
{
get
{
return m_Remark;
}
}
#endregion Remark - 备注
#endregion 控件
/// <summary>
///
/// </summary>
public void CtrlAddCreate()
{
// 对应的表属性 //
eKing.SzdfLib.TableAttribute.HRZZB.UTB_SZDF_HRZZB_TXQY TA
=
eKing.SzdfLib.TableAttribute.HRZZB.UTB_SZDF_HRZZB_TXQY.instance;
// 对应的字段属性 //
DataColumnAttributeInfo dcai = null;
// 标签名 //
string labelName = null;
// 控件前缀 //
string ctrlPreName = FormCtrlPreName;
EkxPageInputCtrl ekx = null;
IValidCtrl ivc = null;
IInputCtrlName IICN
=
IInputCtrlName.IInputCtrlNameInstance;
#region TheName - 名称
ekx = new EkxPageInputCtrl();
m_TheName = ekx;
CtrlAdd(ekx);
dcai = TA._TheName;
labelName = ToLabelName8Info(dcai, "名称", true);
// 控件的标签名 //
ekx.LabelName = labelName;
// 控件客户端显示ID //
ekx.PkId = IICN.ctrl + ctrlPreName + IICN._ + dcai.Name;
// Detail表单编辑的时候允许设置值 //
ekx.IsEnabledSetValue = true;
// 不参与作为搜索的查询条件 //
ekx.EmSearchSelectV = EkPageCreate.Enums.SearchSelect.EmSearchSelect.无;
// 控件类型 //
ekx.EmCtrlTypeV = eKing.EkPageCreate.Enums.CtrlType.EmCtrlType.普通文本;
// 控件样式 //
ekx.CtrlCssClass = "input_txt";
// 控件赋值给数据库做保存时候的格式值 //
ekx.EmSaveValueLogicV = eKing.EkPageCreate.Enums.SaveValueLogic.EmSaveValueLogic.字符串Trim;
// 录入表单:给表单控件赋值用于编辑的显示逻辑 //
ekx.EmSetValueLogicV = EkPageCreate.Enums.SetValueLogic.EmSetValueLogic.字符串;
// 控件宽度 //
ekx.CtrlWidth = Unit98per;
// 控件高度 //
ekx.CtrlHeight = Unit.Empty;
// 控件校验 //
ivc = ekx;
ivc.EmValidFlagV = EkPageCreate.Enums.ValidFlag.EmValidFlag.校验;
ivc.EmValidActionV = EkPageCreate.Enums.ValidAction.EmValidAction.非空;
#endregion TheName - 名称
#region TheCode - 代号
ekx = new EkxPageInputCtrl();
m_TheCode = ekx;
CtrlAdd(ekx);
dcai = TA._TheCode;
labelName = ToLabelName8Info(dcai, "代号", true);
// 控件的标签名 //
ekx.LabelName = labelName;
// 控件客户端显示ID //
ekx.PkId = IICN.ctrl + ctrlPreName + IICN._ + dcai.Name;
// Detail表单编辑的时候允许设置值 //
ekx.IsEnabledSetValue = true;
// 不参与作为搜索的查询条件 //
ekx.EmSearchSelectV = EkPageCreate.Enums.SearchSelect.EmSearchSelect.无;
// 控件类型 //
ekx.EmCtrlTypeV = eKing.EkPageCreate.Enums.CtrlType.EmCtrlType.普通文本;
// 控件样式 //
ekx.CtrlCssClass = "input_txt";
// 控件赋值给数据库做保存时候的格式值 //
ekx.EmSaveValueLogicV = eKing.EkPageCreate.Enums.SaveValueLogic.EmSaveValueLogic.字符串Trim;
// 录入表单:给表单控件赋值用于编辑的显示逻辑 //
ekx.EmSetValueLogicV = EkPageCreate.Enums.SetValueLogic.EmSetValueLogic.字符串;
// 控件宽度 //
ekx.CtrlWidth = Unit98per;
// 控件高度 //
ekx.CtrlHeight = Unit.Empty;
// 控件校验 //
ivc = ekx;
ivc.EmValidFlagV = EkPageCreate.Enums.ValidFlag.EmValidFlag.完全唯一性校验;
ivc.EmValidActionV = EkPageCreate.Enums.ValidAction.EmValidAction.非空;
#endregion TheCode - 代号
#region ShowSeq - 显示顺序
ekx = new EkxPageInputCtrl();
m_ShowSeq = ekx;
CtrlAdd(ekx);
dcai = TA._ShowSeq;
labelName = ToLabelName8Info(dcai, "显示顺序", true);
// 控件的标签名 //
ekx.LabelName = labelName;
// 控件客户端显示ID //
ekx.PkId = IICN.ctrl + ctrlPreName + IICN._ + dcai.Name;
// Detail表单编辑的时候允许设置值 //
ekx.IsEnabledSetValue = true;
// 不参与作为搜索的查询条件 //
ekx.EmSearchSelectV = EkPageCreate.Enums.SearchSelect.EmSearchSelect.无;
// 控件类型 //
ekx.EmCtrlTypeV = eKing.EkPageCreate.Enums.CtrlType.EmCtrlType.普通文本;
// 控件样式 //
ekx.CtrlCssClass = "input_txt";
// 控件赋值给数据库做保存时候的格式值 //
ekx.EmSaveValueLogicV = eKing.EkPageCreate.Enums.SaveValueLogic.EmSaveValueLogic.字符串Trim;
// 录入表单:给表单控件赋值用于编辑的显示逻辑 //
ekx.EmSetValueLogicV = EkPageCreate.Enums.SetValueLogic.EmSetValueLogic.整型值;
// 控件宽度 //
ekx.CtrlWidth = Unit98per;
// 控件高度 //
ekx.CtrlHeight = Unit.Empty;
// 控件校验 //
ivc = ekx;
ivc.EmValidFlagV = EkPageCreate.Enums.ValidFlag.EmValidFlag.校验;
ivc.EmValidActionV = EkPageCreate.Enums.ValidAction.EmValidAction.整型数字;
#endregion ShowSeq - 显示顺序
#region TheText - 描述
ekx = new EkxPageInputCtrl();
m_TheText = ekx;
CtrlAdd(ekx);
dcai = TA._TheText;
labelName = ToLabelName8Info(dcai, "描述", true);
// 控件的标签名 //
ekx.LabelName = labelName;
// 控件客户端显示ID //
ekx.PkId = IICN.ctrl + ctrlPreName + IICN._ + dcai.Name;
// Detail表单编辑的时候允许设置值 //
ekx.IsEnabledSetValue = true;
// 不参与作为搜索的查询条件 //
ekx.EmSearchSelectV = EkPageCreate.Enums.SearchSelect.EmSearchSelect.无;
// 控件类型 //
ekx.EmCtrlTypeV = eKing.EkPageCreate.Enums.CtrlType.EmCtrlType.多行文本;
// 控件赋值给数据库做保存时候的格式值 //
ekx.EmSaveValueLogicV = eKing.EkPageCreate.Enums.SaveValueLogic.EmSaveValueLogic.字符串;
// 录入表单:给表单控件赋值用于编辑的显示逻辑 //
ekx.EmSetValueLogicV = EkPageCreate.Enums.SetValueLogic.EmSetValueLogic.字符串;
// 控件宽度 //
ekx.CtrlWidth = Unit98per;
// 控件高度 //
ekx.CtrlHeight = Unit100px;
// 控件校验 //
ivc = ekx;
ivc.EmValidFlagV = EkPageCreate.Enums.ValidFlag.EmValidFlag.不校验;
ivc.EmValidActionV = EkPageCreate.Enums.ValidAction.EmValidAction.非空;
#endregion TheText - 描述
#region Remark - 备注
ekx = new EkxPageInputCtrl();
m_Remark = ekx;
CtrlAdd(ekx);
dcai = TA._Remark;
labelName = ToLabelName8Info(dcai, "备注", true);
// 控件的标签名 //
ekx.LabelName = labelName;
// 控件客户端显示ID //
ekx.PkId = IICN.ctrl + ctrlPreName + IICN._ + dcai.Name;
// Detail表单编辑的时候允许设置值 //
ekx.IsEnabledSetValue = true;
// 不参与作为搜索的查询条件 //
ekx.EmSearchSelectV = EkPageCreate.Enums.SearchSelect.EmSearchSelect.无;
// 控件类型 //
ekx.EmCtrlTypeV = eKing.EkPageCreate.Enums.CtrlType.EmCtrlType.多行文本;
// 控件赋值给数据库做保存时候的格式值 //
ekx.EmSaveValueLogicV = eKing.EkPageCreate.Enums.SaveValueLogic.EmSaveValueLogic.字符串;
// 录入表单:给表单控件赋值用于编辑的显示逻辑 //
ekx.EmSetValueLogicV = EkPageCreate.Enums.SetValueLogic.EmSetValueLogic.字符串;
// 控件宽度 //
ekx.CtrlWidth = Unit98per;
// 控件高度 //
ekx.CtrlHeight = Unit100px;
// 控件校验 //
ivc = ekx;
ivc.EmValidFlagV = EkPageCreate.Enums.ValidFlag.EmValidFlag.不校验;
ivc.EmValidActionV = EkPageCreate.Enums.ValidAction.EmValidAction.非空;
#endregion Remark - 备注
}
/// <summary>
///
/// </summary>
public void InitClass()
{
// 控件的前缀名 //
m_FormCtrlPreName = "d";
// 创建元素 //
CtrlAddCreate();
// 初始化控件后 //
InitClassAfter();
}
}
}
-
// Management\Areas\ZnbmHrzz\Controllers\HRZZB\HrzzbTxqy\HrzzbTxqyController.cs
#region 保存内容
/// <summary>
/// 保存内容
/// </summary>
/// <param name="xdbHelper">数据库链接串</param>
/// <returns></returns>
protected DetailSaveOperResult
DetailSaveOper(DBHelper xdbHelper)
{
// 1. 保存执行前的逻辑操作,如有需要重载 //
DetailSaveOperResult theResult
=
DetailSaveOperBeforeLogic(xdbHelper);
if (theResult != null)
return theResult;
// Http参数过来的相关的参数名 //
HttpContextName hcn = HttpContextName.instance;
// 2.保存后的逻辑操作 //
DetailSaveOperDBParams dp
=
DetailSaveOperDBParamsCreate();
// 通过Form表单获得关键字 //
dp.PkId = Request.Form[hcn._id];
// 获得页面的属性 //
eKing.SzdfPage.Areas.ZnbmHrzz.HRZZB.HrzzbTxqy.EkSzdfPage eKp
=
eKing.SzdfPage.Areas.ZnbmHrzz.HRZZB.HrzzbTxqy.EkSzdfPage.instance;
// 获得页面的属性 //
eKing.SzdfPage.Areas.ZnbmHrzz.HRZZB.HrzzbTxqy.EkSzdfDetailForm dF
=
eKp.DetailForm;
// 获得录入条件 //
List<EkxInputCtrl> ctrlList
=
dF.CtrlListGet();
bool bIsCreate = true;
if (xdbHelper == null)
{
// 如果没有指定数据库链接 //
// 创建数据库链接 //
xdbHelper
=
SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = xdbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
xdbHelper.OpenDBHelper();
// 这里一般用来做保存校验 //
theResult = DetailSaveOperBeforeSaveLogic
(
dp,
xdbHelper
);
if (theResult != null)
{
if (bIsCreate)
xdbHelper.EndDBHelper();
return theResult;
}
// 业务逻辑 //
eKing.SzdfLib.Business.HRZZB.UTB_SZDF_HRZZB_TXQY
bll
=
eKing.SzdfLib.Business.HRZZB.UTB_SZDF_HRZZB_TXQY.instance;
// 表操作交互字段 //
eKing.SzdfLib.Entity.HRZZB.UTB_SZDF_HRZZB_TXQY
entity
=
new eKing.SzdfLib.Entity.HRZZB.UTB_SZDF_HRZZB_TXQY();
// 保存相关操作的接口 //
ISaveDriver isave = entity;
// 查询相关操作的接口 //
IQueryDriver iq = entity;
dp.DateTimeNow = bll.GetNow(xdbHelper);
// 设置用户Session信息 //
SessionInfoToParam(dp);
if (dp.PkId == null || dp.PkId.Length == 0 || dp.PkId == "0")
{
dp.IsInsert = true;
dp.PkId = bll.GetNewID(xdbHelper);
}
// 3.设置isave.AddISaveItem前 //
// 如有需要的逻辑,可以扩展 override 实现 //
DetailSaveOperBeforeSetISaveDriver(bll, entity, dp, xdbHelper);
// 逻辑方法 //
eKing.SzdfPage.Helpers.eKingSzdfPageHelper
wh
=
eKing.SzdfPage.Helpers.eKingSzdfPageHelper.ekInstance;
wh.ICtrlSaveValueSetObjValue
(
ctrlList,
entity,
eKing.EkPageCreate.Enums.Code.EmCode.Default
);
isave.AddISaveItem(entity._LastUpdateUserId, dp.UserId);
isave.AddISaveItem(entity._UpdateTime, dp.DateTimeNow);
// 4.设置isave.AddISaveItem前 //
// 如有需要的逻辑,可以扩展 override 实现 //
DetailSaveOperBeforeDB(bll, entity, dp, xdbHelper);
if(dp.IsInsert)
{
isave.AddISaveItem(entity._CreateTime, dp.DateTimeNow);
isave.AddISaveItem(entity._InputUserId, dp.UserId);
isave.AddISaveItem(entity._ID, dp.PkId);
bll.Insert(entity, xdbHelper);
}
else
{
iq.AddIQueryItemWithEntityFieldInfo(entity._ID, dp.PkId);
bll.Update(entity, xdbHelper);
}
#region 保存后的逻辑操作
// 5.执行保存后的逻辑操作
// 如有需要,重载逻辑实现
DetailSaveOperAfterDB
(
bll,
entity,
dp,
xdbHelper
);
#endregion 保存后的逻辑操作
if (bIsCreate)
xdbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
xdbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
xdbHelper.FinallyDBHelper();
}
// 6.数据执行完毕提交后的操作,如有需要,重载 //
theResult = DetailSaveOperAfterLogic(dp, xdbHelper);
if (theResult != null)
return theResult;
// {"IsSucc": true,"Msg":"保存成功"}
return DetailSaveOperResult.DetailSaveToSucc("保存成功", dp.PkId);
}
/// <summary>
/// 录入保存
/// </summary>
/// <returns>OperResult[IsSucc:是否成功;Msg:结果提示]</returns>
public ActionResult DetailSave()
{
DetailSaveOperResult op = null;
try
{
op = DetailSaveOper(null);
}
catch (Exception err)
{
op = DetailSaveOperResult.DetailSaveToError("发生异常:" + err.Message);
BaseWriteException(err);
}
ContentResult theResult = new ContentResult();
theResult.ContentEncoding = UTF8Encoding.UTF8;
theResult.ContentType = MIMETypes.Json;
theResult.Content = op.ToJson();
return theResult;
}
#endregion 保存内容
-
// ZNBM\eKing.SzdfPage\Helpers\eKingWebUtilHelper.cs
/// <summary>
/// 通过递归遍历的方式设置保存值
/// </summary>
/// <param name="cList">控件的类列表</param>
/// <param name="entity">字段实体</param>
/// <param name="em">设置值的分组代号</param>
public void ICtrlSaveValueSetObjValue
(
List<EkxInputCtrl> cList,
BaseEntity entity,
eKing.EkPageCreate.Enums.Code.EmCode em
)
{
if (cList == null || entity == null)
return;
object obj = null;
ISaveDriver isave = entity;
EntityFieldInfo eInfo = null;
string strDataColumnName = null;
foreach (ICtrlSaveValue isc in cList)
{
if (isc == null)
continue;
if (!isc.IsEnabledSaveValue)
continue;
if (isc.SaveValueEmCode != em)
continue;
// 数据无效 //
// 就是没有这个表单的填写记录 //
if (!isc.SaveValueIsValid())
continue;
strDataColumnName = isc.SaveValueDataColumnNameGet();
// 获得字段对应的EntityFieldInfo //
eInfo = entity.GetEntityFieldInfo
(strDataColumnName);
if (eInfo == null)
continue;
obj = isc.SaveValueGetValueObj();
isave.AddISaveItem(eInfo, obj);
}
}