使用Jquery+EasyUI 进行框架项目开发案例讲解之二
用户管理源码分享
在上一篇文章《使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享》我们分享了使用Jquery EasyUI来进行开发的相关方法,同时对入群的用户提供了使用Jquery EasyUI开发的框架案例提供了测试地址进行在线测试,文章发表后得到了非常多的反馈,对后期版本的改进提供了很好的帮助,在此感谢!整个文章皆在说明如何使用RIDFramework.NET进行管理类信息系统的开发,EasyUI也只是做个界面,业务核心都是调用的框架的核心接口。
通过上一篇文章,我们讲解了如何使用EasyUI中的tree、datagrid、linkbutton等常用UI组件、组件的特殊应用方法、数据加载技巧等等。
这一篇文章我们来分享一下使用EasyUI开发的用户管理模块的核心代码,用户管理模块主要是对可登录系统的用户进行管理。后续的工作如:用户归属角色、权限的分配、用户所拥有的相应功能模块、各业务系统权限的分配等都是以此为基础。用户管理的主要操作有:新增用户、修改用户、删除用户、设置用户的默认角色、设置用户密码、设置用户的有效性、用户排序等。在用户管理主界面,有用户管理相应操作权限的登录用户可以添加、修改、删除(单个或批量删除)、设置密码、查询用户。此模块一般分配给具有系统管理员角色的用户,以防误操作,超级管理员用户不允许被修改与删除。当然,对于框架核心数据删除操作都是逻辑删除而非物理删除。即删除是在相应记录上打上了删除标志。若要恢复误删的数据,可以联系具有操作数据库的用户(如:DBA)进行数据恢复。用户管理的主界面如下图所示:
首先是用户管理的UI界面aspx代码如下:
<%@ Page Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"CodeBehind="UserAdmin.aspx.cs" Inherits="RDIFramework.WebApp.Modules.UserAdmin" %> <asp:Content ID="Content2" ContentPlaceHolderID="head" runat="server"> <script src="../Scripts/jquery-checkbox.js" type="text/javascript"></script> <script src="../Scripts/date.js" type="text/javascript"></script> <script src="../Scripts/jquery-checkbox.js" type="text/javascript"></script> <script src="../Scripts/jQuery.Select.js" type="text/javascript"></script> <script src="../Scripts/jquery.easyListSplitter.js" type="text/javascript"></script> <script src="../Scripts/Business/UserAdmin.js" type="text/javascript"></script> <script src="../Scripts/easyui/plugins/jquery.linkbutton.js" type="text/javascript" /> </asp:Content> <asp:Content ID="Content1" runat="server" contentplaceholderid="ContentPlaceHolder1"> <div class="toolbar"><%=base.BuildToolBarButtons() %></div> <table id="list" class="scroll" cellpadding="0" cellspacing="0"></table> <div id="w"></div> <div id="d"></div> <script type="text/javascript"> var curUserinfo = { "id": <%=base.UserInfo.Id %>, "name": '<%=base.UserInfo.RealName %>', "username": '<%=base.UserInfo.UserName %>' }; var varPermission = { "varPermissionAdd": '<%=permissionAdd %>', "varPermissionEdit": '<%=permissionEdit %>', "varPermissionDelete": '<%=permissionDelete %>' }; $(function () { $('#a1').linkbutton('disable'); }); </script> </asp:Content>
绑定当前登录用户所拥有的功能按钮列表代码如下:
/// <summary> /// 获得权限 /// </summary> private void GetPermission() { this.permissionAdd = this.IsAuthorized("UserManagement.Add"); this.permissionEdit = this.IsAuthorized("UserManagement.Edit"); this.permissionSetPassword = this.IsAuthorized("UserManagement.SetUserPassword"); this.permissionDelete = this.IsAuthorized("UserManagement.Delete"); } /// <summary> /// 绑定页面功能按钮列表 /// </summary> public override string BuildToolBarButtons() { StringBuilder sb = new StringBuilder(); string linkbtn_template = "<a id=\"a_{0}\" class=\"easyui-linkbutton\" style=\"float:left\" plain=\"true\" href=\"javascript:;\" icon=\"{1}\" {2} title=\"{3}\">{4}</a>"; sb.Append("<a id=\"a_refresh\" class=\"easyui-linkbutton\" style=\"float:left\" plain=\"true\" href=\"javascript:;\" icon=\"icon-reload\" title=\"重新加载\">刷新</a> "); sb.Append("<div class='datagrid-btn-separator'></div> "); sb.Append(string.Format(linkbtn_template, "add", "icon-user_add", permissionAdd ? "" : "disabled=\"True\"", "添加用户", "添加")); sb.Append(string.Format(linkbtn_template, "edit", "icon-user_edit", permissionEdit ? "" : "disabled=\"True\"", "修改用户", "修改")); sb.Append(string.Format(linkbtn_template, "delete", "icon-user_delete", permissionDelete ? "" : "disabled=\"True\"", "删除用户", "删除")); sb.Append("<div class='datagrid-btn-separator'></div> "); sb.Append(string.Format(linkbtn_template, "editpassword", "icon-user_key", permissionSetPassword ? "" : "disabled=\"True\"", "设置选中用户密码", "设置密码")); sb.Append("<div class='datagrid-btn-separator'></div> "); sb.Append(string.Format(linkbtn_template, "export", "icon-user_go", permissionExport ? "" : "disabled=\"True\"", "导出用户数据", "导出")); return sb.ToString(); }
核心业务逻辑完整JS代码如下:
1 $(function () { 2 grid.bind(); 3 AddUser(); //添加用户 4 EditUser(); //编辑用户 5 DeleteUser(); //删除用户 6 SetUserPassword(); //设置用户密码 7 $('#a_refresh').click(function () { 8 $('#list').datagrid('reload'); 9 }); 10 11 }); 12 13 /* 方法一绑定数据 14 var initList = function () { 15 var winSize = { width: $(window).width() - 4, height: $(window).height() - 40 }; 16 $('#list').datagrid({ 17 url: "handler/UserAdminHandler.ashx", 18 title: "系统用户列表", 19 iconCls: 'icon icon-list', 20 width: winSize.width, 21 height: winSize.height, 22 nowrap: false, //折行 23 rownumbers: true, //行号 24 striped: true, //隔行变色 25 idField: 'Id', //主键 26 singleSelect: true, //单选 27 checkOnSelect: true, 28 frozenColumns: [[]], 29 columns: [[ 30 { title: '主键', field: 'Id', hidden: true }, 31 { title: '编号', field: 'Code', width: 150 }, 32 { title: '登录名', field: 'UserName', width: 150, sortable: true }, 33 { title: '用户名', field: 'RealName', width: 150 }, 34 { title: '部门', field: 'DepartmentName', width: 150 }, 35 { title: '角色主键', field: 'RoleId', hidden: true }, 36 { title: '有效', field: 'Enabled', width: 50, formatter: imgcheckbox }, 37 { title: '邮箱地址', field: 'Email', width: 150 }, 38 { title: '手机号码', field: 'Mobile', width: 150 }, 39 { title: '描述', field: 'Description', width: 200 } 40 ]] 41 }); 42 } 43 */ 44 45 var grid = { 46 bind: function () { 47 var winSize = { width: $(window).width() - 4, height: $(window).height() - 40 }; 48 $('#list').datagrid({ 49 url: "handler/UserAdminHandler.ashx", 50 title: "系统用户列表", 51 iconCls: 'icon icon-list', 52 width: winSize.width, 53 height: winSize.height, 54 nowrap: true, //false:折行 55 rownumbers: true, //行号 56 striped: true, //隔行变色 57 idField: 'Id', //主键 58 singleSelect: true, //单选 59 checkOnSelect: true, 60 //frozenColumns: [[]], 61 columns: [[ 62 { title: '主键', field: 'Id', hidden: true }, 63 { title: '编号', field: 'Code', width: 150 }, 64 { title: '登录名', field: 'UserName', width: 150, sortable: true }, 65 { title: '用户名', field: 'RealName', width: 150 }, 66 { title: '部门', field: 'DepartmentName', width: 150 }, 67 { title: '角色主键', field: 'RoleId', hidden: true }, 68 { title: '有效', field: 'Enabled', width: 50, formatter: imgcheckbox }, 69 { title: '邮箱地址', field: 'Email', width: 150 }, 70 { title: '手机号码', field: 'Mobile', width: 150 }, 71 { title: '描述', field: 'Description', width: 200 }, 72 { title: 'Enabled', field: 'Enabled', hidden: true }, 73 { title: 'Gender', field: 'Gender', hidden: true }, 74 { title: 'UserPassword', field: 'UserPassword', hidden: true }, 75 { title: 'Birthday', field: 'Birthday', formatter: date2str, hidden: true }, 76 { title: 'Telephone', field: 'Telephone', width: 200, hidden: true }, 77 { title: 'Duty', field: 'Duty', hidden: true }, 78 { title: 'QICQ', field: 'QICQ', hidden: true }, 79 { title: 'Title', field: 'Title', hidden: true }, 80 { title: 'RoleId', field: 'RoleId', hidden: true }, 81 { title: 'CompanyId', field: 'CompanyId', hidden: true }, 82 { title: 'CompanyName', field: 'CompanyName', hidden: true }, 83 { title: 'DepartmentId', field: 'DepartmentId', hidden: true }, 84 { title: 'DepartmentName', field: 'DepartmentName', hidden: true }, 85 { title: 'WorkgroupId', field: 'WorkgroupId', hidden: true }, 86 { title: 'WorkgroupName', field: 'WorkgroupName', hidden: true }, 87 { title: 'HomeAddress', field: 'HomeAddress', hidden: true } 88 ]] 89 }); 90 }, 91 getSelectedRow: function () { 92 return $('#list').datagrid('getSelected'); 93 } 94 } 95 96 var imgcheckbox = function (cellvalue, options, rowObject) { 97 return cellvalue ? '<img src="/css/icon/ok.png" alt="正常" title="正常" />' : '<img src="/css/icon/stop.png" alt="禁用" title="禁用" />'; 98 } 99 100 var date2str = function (cellvalue, options, rowObject) { 101 if (cellvalue) 102 return $D(cellvalue).strftime("%Y-%m-%d"); 103 else 104 return ''; 105 } 106 107 var initUIform = function () { 108 top.$('#w').hWindow({ html: pform, width: 640, height: 520, title: '添加用户', iconCls: 'icon-add', submit: function () { 109 var flag = true; 110 top.$('#uiform input').each(function () { 111 if ($(this).attr('required') || $(this).attr('validType')) { 112 if (!top.$(this).validatebox('isValid')) { 113 flag = false; 114 return; 115 } 116 } 117 }); 118 119 120 var vRoleId = top.$('#txtRoleId').combobox('getValue'); 121 var vCompanyId = top.$('#txtCompanyName').combobox('getValue'); 122 var vDepartmentId = top.$('#txtDepartmentName').combobox('getValue'); 123 var vWorkgroupId = top.$('#txtWorkgroupName').combobox('getValue'); 124 var vCompanyName = top.$('#txtCompanyName').combobox('getText'); 125 var vDepartmentName = top.$('#txtDepartmentName').combobox('getText'); 126 var vWorkgroupName = top.$('#txtWorkgroupName').combobox('getText'); 127 var queryString = top.$('#uiform').serialize() + '&action=add'; 128 queryString = queryString + '&vRoleId=' + vRoleId + '&vCompanyId=' + vCompanyId + '&vDepartmentId=' + vDepartmentId + '&vWorkgroupId=' + vWorkgroupId; 129 queryString = queryString + '&vCompanyName=' + vCompanyName + '&vDepartmentName=' + vDepartmentName + '&vWorkgroupName=' + vWorkgroupName; 130 $.ajaxtext('handler/UserAdminHandler.ashx', queryString, function (msg) { 131 if (msg == "1") { 132 top.$('#notity').jnotifyAddMessage({ text: '添加成功.', permanent: false, type: 'message' }); 133 top.$('#w').window('close'); 134 $('#list').datagrid('reload'); 135 } 136 else if (msg == "0") { 137 top.$('#notity').jnotifyAddMessage({ text: '用户名已存,请更换用户名.', permanent: false, type: 'warning' }); 138 top.$('#txtUsername').select(); 139 return false; 140 } 141 else { 142 alert(msg); 143 } 144 }); 145 146 return false; 147 } 148 }); 149 150 top.$('#uiform input').each(function () { 151 if ($(this).attr('required') || $(this).attr('validType')) 152 top.$(this).validatebox(); 153 }); 154 top.$('#txtBirthday').datebox(); 155 } 156 //添加用户 157 var AddUser = function () { 158 $('#a_add').click(function () { 159 if ($(this).linkbutton('options').disabled == true) { 160 return; 161 } 162 initUIform(); 163 //绑定各数据字典 164 pubMethod.bindCategory('txtGender', 'Gender'); 165 pubMethod.bindCategory('txtRoleId', 'null'); 166 pubMethod.bindCategory('txtCompanyName', 'Company'); 167 pubMethod.bindCategory('txtDepartmentName', 'Department'); 168 pubMethod.bindCategory('txtWorkgroupName', 'Workgroup'); 169 top.$('#chkEnabled').attr("checked", true); 170 top.$('#txtUserName').focus(); 171 top.$('#txtDescription').val(""); 172 }); 173 } 174 //修改用户 175 var EditUser = function () { 176 $('#a_edit').click(function () { 177 if ($(this).linkbutton('options').disabled == true) { 178 return; 179 } 180 181 var selectRow = grid.getSelectedRow(); 182 if (selectRow != null) { 183 184 if (selectRow.UserName != '' && selectRow.UserName == 'Administrator' && curUserinfo.username != 'Administrator') { 185 $.messager.alert('警告提示', '你不能修改超级管理员用户!', 'warning'); 186 return false; 187 } 188 189 //弹窗 190 top.$('#w').hWindow({ html: pform, width: 640, height: 520, title: '修改用户', iconCls: 'icon-edit', submit: function () { 191 var flag = true; 192 top.$('#uiform input').each(function () { 193 if ($(this).attr('required') || $(this).attr('validType')) { 194 if (!top.$(this).validatebox('isValid')) { 195 flag = false; 196 return; 197 } 198 } 199 }); 200 var vRoleId = top.$('#txtRoleId').combobox('getValue'); 201 var vCompanyId = top.$('#txtCompanyName').combobox('getValue'); 202 var vDepartmentId = top.$('#txtDepartmentName').combobox('getValue'); 203 var vWorkgroupId = top.$('#txtWorkgroupName').combobox('getValue'); 204 var vCompanyName = top.$('#txtCompanyName').combobox('getText'); 205 var vDepartmentName = top.$('#txtDepartmentName').combobox('getText'); 206 var vWorkgroupName = top.$('#txtWorkgroupName').combobox('getText'); 207 208 var queryString = top.$('#uiform').serialize() + '&action=edit&id=' + selectRow.Id; 209 queryString = queryString + '&vRoleId=' + vRoleId + '&vCompanyId=' + vCompanyId + '&vDepartmentId=' + vDepartmentId + '&vWorkgroupId=' + vWorkgroupId; 210 queryString = queryString + '&vCompanyName=' + vCompanyName + '&vDepartmentName=' + vDepartmentName + '&vWorkgroupName=' + vWorkgroupName; 211 $.ajaxtext('handler/UserAdminHandler.ashx', queryString, function (msg) { 212 if (msg == "1") { 213 top.$('#notity').jnotifyAddMessage({ text: '修改成功.', permanent: false, type: 'message' }); 214 top.$('#w').window('close'); 215 $('#list').datagrid('reload'); 216 } 217 else 218 alert(msg); 219 }); 220 221 return false; 222 } 223 }); 224 225 top.$('#uiform input').each(function () { 226 if ($(this).attr('required') || $(this).attr('validType')) 227 top.$(this).validatebox(); 228 }); 229 //绑定各数据字典 230 pubMethod.bindCategory('txtGender', 'Gender'); 231 pubMethod.bindCategory('txtRoleId', 'null'); 232 pubMethod.bindCategory('txtCompanyName', 'Company'); 233 pubMethod.bindCategory('txtDepartmentName', 'Department'); 234 pubMethod.bindCategory('txtWorkgroupName', 'Workgroup'); 235 236 //初始化相关数据 237 top.$('#txtUserName').val(selectRow.UserName); 238 top.$('#txtRealName').val(selectRow.RealName); 239 top.$('#txtCode').val(selectRow.Code); 240 top.$('#txtUserPassword').after('******').remove(); 241 top.$('#txtGender').combobox('setValue', selectRow.Gender); 242 top.$('#txtMobile').val(selectRow.Mobile); 243 top.$('#txtBirthday').val(selectRow.Birthday); 244 top.$('#txtTelephone').val(selectRow.Telephone); 245 top.$('#txtDuty').val(selectRow.Duty); 246 top.$('#txtQICQ').val(selectRow.QICQ); 247 top.$('#txtTitle').val(selectRow.Title); 248 top.$('#txtEmail').val(selectRow.Email); 249 top.$('#txtRoleId').combobox('setValue', selectRow.RoleId); 250 top.$('#txtCompanyName').combobox('setValue', selectRow.CompanyId); 251 top.$('#txtDepartmentName').combobox('setValue', selectRow.DepartmentId); 252 top.$('#txtWorkgroupName').combobox('setValue', selectRow.WorkgroupId); 253 top.$('#txtHomeAddress').val(selectRow.HomeAddress); 254 top.$('#txtDescription').val(selectRow.Description); 255 top.$('#chkEnabled').attr("checked", selectRow.Enabled == "1"); 256 } else { 257 top.$('#notity').jnotifyAddMessage({ text: '请选择要修改的用户.', permanent: false, type: 'warning' }); 258 return false; 259 } 260 }); 261 } 262 //删除用户 263 var DeleteUser = function () { 264 $('#a_delete').click(function () { 265 if ($(this).linkbutton('options').disabled == true) { 266 return; 267 } 268 var selectRow = grid.getSelectedRow(); 269 270 if (selectRow) { 271 if (selectRow.Id != '' && selectRow.Id == curUserinfo.id) { 272 $.messager.alert('警告提示', '不能删除当前登录用户!', 'warning'); 273 return false; 274 } 275 276 if(selectRow.UserName != '' && selectRow.UserName == 'Administrator') 277 { 278 $.messager.alert('警告提示', '不能删除超级管理员用户!', 'warning'); 279 return false; 280 } 281 282 $.messager.confirm('询问提示', '确认要删除所选用户吗?', function (data) { 283 if (data) { 284 $.ajaxtext('handler/UserAdminHandler.ashx', 'action=delete&id=' + selectRow.Id, function (msg) { 285 if (msg == '1') { 286 $.messager.alert('成功提示', '所选用户删除成功!'); 287 $('#list').datagrid('reload'); 288 } else { 289 $.messager.alert('错误提示', msg, 'error'); 290 } 291 }); 292 } 293 }); 294 } 295 else { 296 top.$('#notity').jnotifyAddMessage({ text: '请选择要删除的用户。', permanent: false, type: 'warning' }); 297 return; 298 } 299 }); 300 } 301 //设置用户密码 302 var SetUserPassword = function () { 303 $('#a_editpassword').click(function () { 304 if ($(this).linkbutton('options').disabled == true) { 305 return; 306 } 307 var selectRow = grid.getSelectedRow(); 308 if (selectRow != null) { 309 top.$('#d').hDialog({ width: 300, height: 160, title: '设置用户密码', iconCls: 'icon-key', html: formeditpass, submit: function () { 310 if (top.$('#txtNewPassword').validatebox('isValid')) { 311 $.ajaxtext('handler/UserAdminHandler.ashx', "action=setpassword&id=" + selectRow.Id + '&password=' + top.$('#txtNewPassword').val(), function (msg) { 312 if (msg == "1") { 313 top.$('#notity').jnotifyAddMessage({ text: '密码修改成功!请牢记新密码。', permanent: false, type: 'warning' }); 314 top.$('#d').dialog('close'); 315 } else 316 alert(msg); 317 }) 318 } 319 } 320 }); 321 322 top.$('#loginname').text(selectRow.UserName + ' | ' + selectRow.RealName); 323 top.$('#txtNewPassword').validatebox(); 324 } else { 325 top.$('#notity').jnotifyAddMessage({ text: '请选择要修改密码的用户。', permanent: false, type: 'warning' }); 326 return false; 327 } 328 }); 329 } 330 331 //公共方法 332 var pubMethod = { 333 bindCategory: function (categoryControl, categoryCode) { 334 if (categoryControl == '' || categoryCode == '') { 335 return; 336 } 337 338 if (categoryControl == 'txtGender') { 339 top.$('#' + categoryControl).combobox({ 340 url: 'Modules/handler/DataItemAdminHandler.ashx?action=GetCategory&categorycode=' + categoryCode, 341 method: 'get', 342 valueField: 'ItemValue', 343 textField: 'ItemName', 344 editable: false, 345 panelHeight: 'auto' 346 }); 347 } 348 349 if (categoryControl == 'txtRoleId') { 350 top.$('#' + categoryControl).combobox({ 351 url: 'Modules/handler/RoleAdminHandler.ashx?action=GetEnabledRoleList', 352 method: 'get', 353 valueField: 'Id', 354 textField: 'RealName', 355 editable: false, 356 panelHeight: 'auto' 357 }); 358 } 359 360 if (categoryControl == 'txtCompanyName' || categoryControl == 'txtDepartmentName' || categoryControl == 'txtWorkgroupName') { 361 top.$('#' + categoryControl).combobox({ 362 url: 'Modules/handler/OrganizeAdminHander.ashx?action=GetOrganizeByCategory&OrganizeCategory=' + categoryCode, 363 method: 'get', 364 valueField: 'Id', 365 textField: 'FullName', 366 editable: false, 367 panelHeight: 'auto' 368 }); 369 } 370 } 371 } 372 373 var pform = '<form id="uiform"><table cellpadding=5 cellspacing=0 width=100% align="center" class="grid2" border=0><tr><td align="right">'; 374 pform += '登录用户名:</td><td><input name="UserName" id="txtUserName" validType="length[2,40]" required="true" type="text" class="txt03" ></td><td align="right">'; 375 pform += '姓名:</td><td><input name="RealName" id="txtRealName" validType="length[2,40]" required="true" type="text" class="txt03" ></td></tr><tr><td align="right">'; 376 pform += '编号:</td><td><input name="Code" id="txtCode" validType="length[2,40]" type="text" class="txt03" ></td><td align="right">'; 377 pform += '用户密码:</td><td><input validType="safepass" required="true" name="UserPassword" id="txtUserPassword" type="password" class="txt03" ></td></tr><tr><td align="right">'; 378 pform += '性别:</td><td><input name="Gender" id="txtGender" required="true" type="text" class="txt03" ></td><td align="right">'; 379 pform += '手机号码:</td><td><input name="Mobile" id="txtMobile" type="text" class="txt03" ></td></tr><tr><td align="right">'; 380 pform += '出生日期:</td><td><input name="Birthday" id="txtBirthday" type="text" class="txt03" ></td><td align="right">'; 381 pform += '固定电话:</td><td><input name="Telephone" id="txtTelephone" type="text" class="txt03" ></td></tr><tr><td align="right">'; 382 pform += '岗位:</td><td><input name="Duty" id="txtDuty" type="text" class="txt03" ></td><td align="right">'; 383 pform += 'QQ号码:</td><td><input name="QICQ" id="txtQICQ" type="text" class="txt03" ></td></tr><tr><td align="right">'; 384 pform += '职称:</td><td><input name="Title" id="txtTitle" type="text" class="txt03" ></td><td align="right">'; 385 pform += '邮箱地址:</td><td><input name="Email" id="txtEmail" type="text" class="txt03" ></td></tr><tr><td align="right">'; 386 pform += '默认角色:</td><td><input name="RoleId" id="txtRoleId" type="text" class="txt03" ></td><td align="right">'; 387 pform += '公司名称:</td><td><input name="CompanyName" id="txtCompanyName" type="text" class="txt03" ></td></tr><tr><td align="right">'; 388 pform += '部门名称:</td><td><input name="DepartmentName" id="txtDepartmentName" type="text" class="txt03" ></td><td align="right">'; 389 pform += '工作组:</td><td><input name="WorkgroupName" id="txtWorkgroupName" type="text" class="txt03" ></td></tr><tr><td align="right">'; 390 pform += '家庭地址:</td><td colspan="3"><input name="HomeAddress" style="width:470px;" id="txtHomeAddress" type="text" class="txt03" ></td></tr><tr><td align="right">'; 391 pform += '有效性:</td><td colspan="3"><input id="chkEnabled" type="checkbox" name="Enabled" /><label>有效</label> <span style="color:#666;padding-left:20px;">注:用户无效(禁用该用户)后,该用户将不能登录。</span></td></tr><tr><td align="right"> '; 392 pform += '描述:</td><td colspan =3><textarea id="txtDescription" name="Description" rows="3" style="width:470px;height:50px;" class="txt03"></td></tr></table></form>'; 393 394 var formeditpass = '<table class="grid" id="epform">'; 395 formeditpass += '<tr><td>登录名:</td><td><span id="loginname"></span></td></tr>'; 396 formeditpass += '<tr><td>新密码:</td><td><input validType="safepass" required="true" id="txtNewPassword" name="password" type="password" class="txt03" /></td></tr>'; 397 formeditpass += '</table>';
添加用户界面如下:
修改用户界面如下:
设置用户密码:
用户管理一般处理程序:
相关资源分享
1、基于.NET的快速信息化系统开发整合框架 —RDIFramework.NET—系统目录
4、Jquery EasyUI本地实例文件(如果嫌官网速度过慢,可以下载这个看)
8、JavaScript权威指南(第六版)中文版(强烈推荐)在线观看
作者: EricHu 出处: http://www.cnblogs.com/huyong 微博: 腾讯 Email: 406590790@qq.com QQ 交流:406590790
QQ 群:16653241 平台博客: 【CSDN】http://blog.csdn.net/chinahuyong 【CNBLOGS】http://www.cnblogs.com/huyong 关于作者:高级工程师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,精通DotNet,DB(SqlServer、Oracle等)技术。熟悉Java、Delhpi及Linux操作系统,有扎实的网络知识。在面向对象、面向服务以及数据库领域有一定的造诣。 如有问题或建议,请多多赐教! 本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。
联系客服