页面数据功能更新事件
网站系统管理后台的页面数据功能更新事件文档
一、网站系统管理后台的数据功能更新主要涉及信息的编辑更改,提交保存更新操作。数据功能更新处理方式主要有两种类型,update更新处理、add添加处理,一个数据更新事件信息中可能有多个action执行操作块。数据更新事件信息中可定义[req=参数名=参数值类型],动态获取传递的参数信息用于数据表字段值的更新。数据更新事件中需要定义被更新的字段信息和值,定义更新的条件字段信息。网站系统中的删除操作属于数据更新事件处理的一种形式,只能进行update更新类型的处理,请注意数据表定义好数据删除标识字段信息。
二、网站管理后台的页面数据内容提交保存更新的功能主要包括四个步骤:
1、页面代码中引用网站系统基础css和js文件,支持系统后台呈现效果的/res/c/m.css样式文件,支持组件功能、提交保存更新处理的/res/j/m.js。如果页面上需要支持图文并茂发布组件功能,还需要引用/res/c/uploadifive.css样式文件和/res/j/jquery.uploadifive.js脚本文件的支持。
2、通过在页面上组织表单数据内容元素项,表单中可包含多个数据发布型组件,自定义接入html元素项结合提交事件处理,提交操作的按钮。
3、在页面中定义该表单的保存事件信息。
4、在页面中设置:保存更新操作的功能事件名称,与提交按钮点击事件的参数信息对应,完成表单数据提交保存更新的功能。
三、在网站系统管理后台的页面中定义数据功能更新事件信息:
1、核心项,引擎要求页面数据的提交功能事件中必须放置的5个隐藏域项:
<nput type="hidden" id="k1" value="[k1]" />
<input type="hidden" id="k2" value="[k2]" />
<input type="hidden" id="kt" value="[kt]" />
<input type="hidden" id="eid" value="$req.eid$" />
<input type="hidden" id="pageloadwinsn" value="[pageloadwinsn]" />
2、组织定义页面代码中表单元素项,表单元素项可直接使用发布型组件、自定义的html表单元素项接入结合提交处理,可自行组织加入提交事件处理。
3、系统后台页面操作数据功能更新事件的定义讲解:
(1).定义表单提交保存事件区域:[event=自定义事件的名称,本页面中不可重复]....[/event]。事件的名称只支持英文字母、数字、下划线。一个页面中可定义多个数据功能更新事件信息。
(2).定义权限控制信息: [role=页面功能权限代码标记=权限具体功能操作标记]。比如:[role=10003=u],使用10003表示文章信息权限项、使用u表示文章修改操作权限。
(3).定义动态参数信息:[req=参数名称=参数值类型],参数名称只支持英文字母、数字、下划线,参数值类型:int表示整型数字、varchar表示英文字母数字字符、nvarchar表示含中文字符的信息。
(4).定义表单提交保存事件的执行区域:[action=保存数据的数据表名称=执行方式add或update]..区域内定义需要操作的数据字段信息....h]/action]。数据表名称只支持英文字母、数字、下划线。执行方式可选择一种,add表示添加新数据,update表示修改更新数据。一个[event..]事件信息中可同时定义多个[action..]执行区域块。
(4.1).事件的执行区域[action...]...[/action]内,可定义一个[dbn=对接名称],用于当需要在本站中扩展处理其他MS SQL Server数据库的数据时,可定义非本站的数据库链接的对接名称。不需要时,此部分可去掉。具体操作详情,请参考【单条或多条数据查询组件文档】中的[dbn=...]定义部分。
(4.2).事件的执行区域[action...]...[/action]内,定义需要操作的数据字段信息,使用[cols]....[/cols]界定字段信息区域。其中每个字段的信息定义,请用[col=字段名]....[/col]。
(4.3).字段信息定义中可以使用 [must]定义必填的提示信息[/must],设定为必填项,如果不需要必填,去掉must项即可。
(4.4).字段信息定义中,字段值来自对应提交的数据内容,赋值请使用字段信息定义中的[val]$e.表单项的id属性值$[/val],表单项的id属性值,也就是具体某一个发布型组件的id信息,将通过该id获取填写提交的内容。
(4.5).字段信息定义中,如果需要验证判断该字段的值是否已存在,请在字段信息定义中加入[same]已存在的提示语[/same],比如:[same]该分类名称已存在了![/same]。
如果需要验证该字段的值是否已存在,并且在验证条件中还需要排除当前正在修改的记录自己时,请在字段信息定义中加入:[same]已存在的提示语[/same][samenoeid=当前记录的唯一编号的字段名]设置当前记录的编号值[/samenoeid],比如:修改文章分类时,分类名判断是否存在用“[same]该分类名称已存在![/same][samenoeid=nc_id]$req.eid$[/samenoeid]”,nc_id为分类编号字段名,$req.eid$为当前正在修改的分类编号。
如果是修改二级分类的情况,还需要判断在同一个上级分类下是否已存在二级分类名称,请在字段信息定义中加入:[same=表示一个要追加入判断的字段名 此字段的定义必须一起存在于[cols]中]已存在的提示语[/same][samenoeid=当前记录的唯一编号的字段名]设置当前记录的编号值[/samenoeid],比如:[same=nc_parent_id]该二级分类名称已存在[/same][samenoeid=nc_id]$req.eid$[/samenoeid],nc_parent_id为本表中所属父级的编号的字段名,nc_id为当前修改的分类编号字段名,$req.eid$为当前正在修改的分类编号。
添加分类名称,提交保存时,判断名称是否存在:
[cols]
[col=nc_name][must]请填写分类名称[/must][val]$e.nc_name$[/val][same]该名称已存在了[/same][/col]
[/cols]
修改分类名称,提交保存时,判断名称是否存在:
[cols]
[col=nc_name][must]请填写分类名称[/must][val]$e.nc_name$[/val][same]该名称已存在[/same][samenoeid=nc_id]$req.eid$[/samenoeid][/col]
[/cols]
添加二级地区名称时,判断名称是否存在:
[cols]
[col=pid][val]$e.pid$[/val][/col]
[col=areaname][must]请填写地区名称[/must][val]$e.areaname$[/val][same=pid]该名称已存在了[/same][/col]
[/cols]
修改二级地区名称时,判断名称是否存在:
[cols]
[col=pid][val]$e.pid$[/val][/col]
[col=areaname][must]请填写地区名称[/must][val]$e.areaname$[/val][same=pid]该地区名称已存在[/same][samenoeid=id]$req.eid$[/samenoeid][/col]
[col=pinyin][must]请填写拼音[/must][val]$e.pinyin$[/val][same]该拼音已存在[/same][samenoeid=id]$req.eid$[/samenoeid][/col]
[/cols]
(4.5).定义数据更新的条件字段信息,该区域使用[where]...[/where],[where]区域中每个条件字段信息的定义使用 [col=字段名][way]比较方式[/way][val]被比较的值[/val][/col],“被比较的值”可以是$req.参数名$动态获取的、或固定值。比较方式:d表示大于,x表示小于,=表示等于,d=表示大等于,x=表示小等于,like表示模糊匹配。
[event=自定义功能更新事件的名称]
[role=页面功能权限的代码标记=权限具体功能的操作标记]
[req=参数名称=参数值类型]
[action=被更新的数据表名称=执行方式add或update]
[cols]
[col=被更新的字段名1][must]设定为必填项的提示信息[/must][val]$e.对应表单项元素的id$[/val][/col]
[col=被更新的字段名2][val]$e.对应表单项元素的id$[/val][/col]
[col=被更新的表示最新发布时间的字段名3][val]@sys.nowtime@[/val][/col]
[/cols]
[where]
[col=条件字段名][way]比较方式[/way][val]用于比较的值 可动态$req.xxx$或固定值[/val][/col]
[/where]
[/action]
[action...]....[/action]
...
[/event]
四、网站系统管理后台的页面数据功能更新事件的实例:
1、在页面代码中,组织布局表单元素项。定义好个表单元素项的id属性值。自定义的<select>元素项,可加入 class="opselect"即可对接系统的提交处理功能。其他表单元素项建议尽量使用系统提供的发布型组件。放置用于点击提交的操作按钮,请参考系统演示代码设定好各自系统的定义的权限分配信息,对功能操作按钮管控。
2、在页面代码中,放置核心项,引擎要求页面数据的提交功能事件中必须放置的5个隐藏域项。
3、在页面代码中,定义用于数据更新处理的事件信息,被更新的数据表、数据字段信息、条件字段信息。
4、将提交的操作按钮的点击处理与定义的数据更新事件名相对应。
5、调用系统的提交数据功能,将页面上修改后的数据信息提交并处理完成。
6、这里展示一个更新一条文章信息的完整表单项、提交按钮、更新事件信息、点击按钮操作处理实例:
<div class="obox obox_act_fix">
<div class="orow cf opmst1" id="my_news_typeid"><div class="ocoll optip">所属分类:</div><div class="ocolr">
<select id="news_typeid" class="opselect" size="1"><option value="">选择分类</option>
[data=news_class_list][0][get][col=nc_id][col=nc_name][/get][where][col=nc_isdel][way]=[/way][val]0[/val][/col][/where][orderby][col=nc_sort=asc][/orderby][/0]
[row]<option value="$nc_id$" [if={$nc_id$}={$newsinfo.news_typeid$}=int]selected[/if]>$nc_name$</option>[/row]
[/data]</select></div></div>
[sys.text #news_title @文章标题 maxlen=100 must=1]$bind.newsinfo.news_title$[/sys.text]
[sys.faceimg #news_faceurl @封面图片 {请上传一张图片进行设置封面图} must=1 width=686 height=320 ]$bind.newsinfo.news_faceurl$[/sys.faceimg]
[sys.textbox #news_des @文章摘要 {填写文章总体概述摘要信息,最多200字} maxlen=200 must=1]$bind.newsinfo.news_des$[/sys.textbox]
[sys.textpicbox #news_con @内容详情 {请编辑内容详情} must=1 ]$bind.newsinfo.news_con$[/sys.textpicbox]
<div class="orow cf"><div class="ocoll">前台显示:</div><div class="ocolr">
<select id="news_flag" class="opselect" size="1">
<option value="1" [if={$newsinfo.news_flag$}={1}=int]selected[/if]>允许显示</option>
<option value="0" [if={$newsinfo.news_flag$}={0}=int]selected[/if]>禁止显示</option>
</select></div></div>
<div class="oact">
[if={$req.eid$}={0}=int][doshow=13001=i]<a href="javascript:void(0);" class="actbtn" data-event="setaddnews">添 加</a>[/doshow][/if]
[if={$req.eid$}d{0}=int][doshow=13001=u]<a href="javascript:void(0);" class="actbtn" data-event="seteditnews">修 改</a>[/doshow][/if]
</div>
</div>
<input type="hidden" id="k1" value="[k1]" />
<input type="hidden" id="k2" value="[k2]" />
<input type="hidden" id="kt" value="[kt]" />
<input type="hidden" id="eid" value="$req.eid$" />
<input type="hidden" id="pageloadwinsn" value="[pageloadwinsn]" />
[event=seteditnews]
[role=13001=u]
[req=eid=int]
[action=news_list=update]
[cols]
[col=news_title][must]请填写标题[/must][val]$e.news_title$[/val][/col]
[col=news_typeid][val]$e.news_typeid$[/val][/col]
[col=news_faceurl][val]$e.news_faceurl$[/val][/col]
[col=news_des][must]请填写摘要[/must][val]$e.news_des.noln$[/val][/col]
[col=news_con][must]请请编辑内容详情[/must][val]$e.news_con$[/val][/col]
[col=news_flag][val]$e.news_flag$[/val][/col]
[col=news_addtime][val]@sys.nowtime@[/val][/col]
[/cols]
[where]
[col=news_id][way]=[/way][val]$req.eid$[/val][/col]
[/where]
[/action]
[/event]
<script type="text/javascript">
$(function () {
$(".actbtn").bind("click", function () {sysevent($(this).attr("data-event"));});
});
function sysevent(evt) {
var nullmsg = alertnullsyselecons();
if (nullmsg != "") {pageAlert(nullmsg, 0, 1500);return false;}
var vals = getsyselecons();
addorupdate("",evt,vals);
}
</script>
7、在页面代码的javascript脚本中定义按钮的bind点击事件处理,其中调用的方法sysevent为系统提供的对接处理,可直接复制使用;其中,nullmsg 用于接收表单项中各个发布型组件的内容验证处理,vals 用于处理用户填写的内容组织。最后提交到网站处理保存数据完成。这些操作和写法都是系统已内置的,用户只需复制使用即可的。如果直接使用按钮区域相关的按钮class样式名称actbtn,和按钮事件属性名称及值的情况下,无需修改javascript脚本的代码部分,可直接使用有效。
五、更多页面数据更新事件的用法实战操作,请下载名扬银河数字官网系统后获得更好的实践代码与文档的查阅体验,下载网站系统请【名扬银行数字官网系统的最新版本】