首页 / EASYUI / Easyui主从表设计
Easyui主从表设计
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Easyui主从表设计,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含11199字,纯文字阅读大概需要16分钟。
内容图文
js代码:
// 全局变量 var loading; var grid; var mainGrid; var dlg_Edit; var dlg_Edit_form; var virpath = ""; //网站的虚拟目录 如:/ShopManagervar permissions; var addPermissionName = ‘City_Add‘.toLowerCase(); var editPermissionName = ‘City_Edit‘.toLowerCase(); var delPermissionName = ‘City_Delete‘.toLowerCase(); var savePermissionName = ‘City_Save‘.toLowerCase(); var exportPermissionName = ‘City_PrintandExport‘.toLowerCase(); var curRowData; var lastIndex; $(function () { dlg_Edit = $(‘#Dlg-Edit‘).dialog({ closed: true, modal: true, toolbar: [{ text: ‘保存‘, iconCls: ‘icon-save‘, handler: saveData }, ‘-‘, { text: ‘关闭‘, iconCls: ‘icon-no‘, handler: function () { dlg_Edit.dialog(‘close‘); } }], onBeforeLoad: function (param) { //var password = $("#ConcreteDType").attr("value"); } }).dialog(‘center‘); dlg_Edit_form = dlg_Edit.find(‘form‘); $.ajax({ url: virpath + ‘/admin/GetPermissionsForCurrentUser/?permissionKey=City‘, type: ‘post‘, datatype: ‘application/json; charset=utf-8‘, error: function (result) { }, success: function (result) { permissions = result; grid = $(‘#grid‘).treegrid({ rownumbers: true, fit: true, title: ‘城市列表‘, pagination: false, //pageSize: 20, fitColumns: true, singleSelect: true, striped: true, idField: "CityId", treeField: ‘Name‘, //sortName: ‘Sort‘,//sortOrder: ‘asc‘,//queryParams: { filter: ‘‘}, datatype: ‘application/json; charset=utf-8‘, method: ‘get‘, toolbar: [{ text: ‘新增‘, iconCls: ‘icon-add‘, handler: add, id: ‘btnAdd‘, disable: true }, ‘-‘, { text: ‘编辑‘, iconCls: ‘icon-edit‘, handler: edit, id: ‘btnEdit‘, disable: true }, ‘-‘, { text: ‘删除‘, iconCls: ‘icon-remove‘, handler: del, id: ‘btnDel‘, disable: true }, ‘-‘, { text: ‘刷新‘, iconCls: ‘icon-search ‘, handler: reload }, ‘-‘], columns: [[ { field: ‘Sort‘, title: ‘排序‘, width: 100, sortable: true } , { field: ‘Name‘, title: ‘名称‘, width: 100, sortable: true } , { field: ‘Province‘, title: ‘所属省份‘, width: 100, sortable: false } , { field: ‘Pingyin‘, title: ‘拼音‘, width: 100, sortable: true } , { field: ‘Jiangpin‘, title: ‘简拼‘, width: 100, sortable: true } ]] , onClickRow: function (row) {//运用单击事件实现一行的编辑结束,在该事件触发前会先执行onAfterEdit事件var rowIndex = row.CityId; if (lastIndex != rowIndex) { grid.treegrid(‘endEdit‘, lastIndex); } }, onDblClickRow: function (row) { //双击事件if (row == undefined) return; var rowIndex = row.CityId; if (lastIndex != rowIndex) { grid.treegrid(‘endEdit‘, lastIndex); } var disabled = $(‘#btnEdit‘).linkbutton(‘options‘).disabled; if (disabled || row.Predefined) { grid.treegrid(‘cancelEdit‘, rowIndex); } else { grid.treegrid(‘beginEdit‘, rowIndex); } lastIndex = rowIndex; }, onAfterEdit: function (row, changes) { if (row.Predefined) return; var rowId = row.CityId; $.ajax({ url: virpath + ‘/api/City/Put/‘ + rowId, data: row, type: ‘put‘, datatype: ‘application/json; charset=utf-8‘, success: function (content) { //result为请求处理后的返回值 var data = getObjectFrom(content); if (data.success) { Msgfade(‘操作成功‘); //提示消息 grid.treegrid(‘reload‘); } else { Msgalert(‘错误‘, data.msg, ‘error‘); } } }); }, onBeforeLoad: function (param) { setButtonPermissions(permissions); }, onHeaderContextMenu: function (e, field) { e.preventDefault(); if (!$(‘#tmenu‘).length) { createColumnMenu(); } $(‘#tmenu‘).menu(‘show‘, { left: e.pageX, top: e.pageY }); }, onContextMenu: function (e, rowData) { e.preventDefault(); curRowData = rowData; if (!$(‘#rmenu‘).length) { createRowContextMenu(); } $(‘#rmenu‘).menu(‘show‘, { left: e.pageX, top: e.pageY }); }, onLoadSuccess: function (data) { //当数据加载成功时触发 }, onLoadError: function (arguments) { $.messager.alert(‘提示‘, ‘由于网络或服务器太忙,加载失败,请重试!‘, ‘error‘); } }); mainGrid = $(‘#gridleft‘).datagrid({ title: ‘省份‘, iconCls: ‘icon-save‘, method: ‘get‘, url: ‘/api/Province/Get‘, queryParams: { filter: ‘‘ }, datatype: ‘application/json; charset=utf-8‘, idField: ‘ProvinceId‘, sortName: ‘ProvinceId‘, //sortOrder: ‘desc‘, sortOrder: ‘asc‘, pageSize: 30, striped: true, columns: [[ { field: ‘Sort‘, title: ‘排序‘, width: 100, sortable: true } , { field: ‘Name‘, title: ‘名称‘, width: 100, sortable: true } , { field: ‘Pingyin‘, title: ‘拼音‘, width: 100, sortable: true } , { field: ‘Jiangpin‘, title: ‘简拼‘, width: 100, sortable: true } ]], fit: true, pagination: true, rownumbers: true, fitColumns: true, singleSelect: true, onSelect: function (rowIndex, rowData) { showAll(rowData.ProvinceId); }, onLoadSuccess: function (data) { if (data.total > 0) $(‘#gridleft‘).datagrid(‘selectRow‘, 0); }, onLoadError: function () { $.messager.alert(‘提示‘, ‘由于网络或服务器太忙,加载失败,请重试!‘, ‘error‘); }, onBeforeLoad: function (param) { } }); } }); }); function createColumnMenu() { var tmenu = $(‘<div id="tmenu" style="width:100px;"></div>‘).appendTo(‘body‘); var fields = grid.datagrid(‘getColumnFields‘); for (var i = 0; i < fields.length; i++) { $(‘<div iconCls="icon-ok"/>‘).html(fields[i]).appendTo(tmenu); } tmenu.menu({ onClick: function (item) { if (item.iconCls == ‘icon-ok‘) { grid.datagrid(‘hideColumn‘, item.text); tmenu.menu(‘setIcon‘, { target: item.target, iconCls: ‘icon-empty‘ }); } else { grid.datagrid(‘showColumn‘, item.text); tmenu.menu(‘setIcon‘, { target: item.target, iconCls: ‘icon-ok‘ }); } } }); } function getSelectedKey() { var rows = grid.datagrid(‘getSelections‘); if (rows.length == 0) return ‘‘; return rows[0].UserName; } function getSelectedArr() { var ids = []; var rows = grid.treegrid(‘getSelections‘); for (var i = 0; i < rows.length; i++) { ids.push(rows[i].CityId); } return ids; } function getSelectedID() { var ids = getSelectedArr(); return ids.join(‘,‘); } function arr2str(arr) { return arr.join(‘,‘); } function add() { var rows = mainGrid.datagrid(‘getSelections‘); if (rows.length == 0) return; dlg_Edit.dialog(‘open‘).dialog(‘setTitle‘, ‘添加‘); dlg_Edit_form.form(‘clear‘); $("#ProvinceId").val(rows[0].ProvinceId); var parentRows = grid.datagrid(‘getSelections‘); if (parentRows.length > 0) { $("#ProvinceId").val(parentRows[0].CityId); } dlg_Edit_form.url = virpath + ‘/api/City/Post‘; dlg_Edit_form.method = ‘post‘; } function edit() { var rows = grid.datagrid(‘getSelections‘); var num = rows.length; if (num == 0) { Msgshow(‘请选择一条记录进行操作!‘); return; } elseif (num > 1) { $.messager.alert(‘提示‘, ‘您选择了多条记录,只能选择一条记录进行修改!‘, ‘info‘); return; } elseif (rows[0].Predefined) { $.messager.alert(‘提示‘, ‘预定义类型不允许修改!‘, ‘info‘); return; } else { dlg_Edit.dialog(‘open‘).dialog(‘setTitle‘, ‘修改:‘ + rows[0].Name); dlg_Edit_form.form(‘reset‘); dlg_Edit_form.form(‘load‘, rows[0]); //加载到表单的控件上 dlg_Edit_form.method = ‘put‘; dlg_Edit_form.url = virpath + ‘/api/City/Put/‘ + rows[0].CityId; } } function del() { //var arr = getSelectedKey();var arr = getSelectedArr(); //if (arr!=‘‘) {if (arr.length > 0) { var rows = grid.datagrid(‘getSelections‘); var num = rows.length; if (num == 0) { Msgshow(‘请选择一条记录进行操作!‘); return; } elseif (rows[0].Predefined) { $.messager.alert(‘提示‘, ‘预定义类型不允许删除!‘, ‘info‘); return; } $.messager.confirm(‘提示‘, ‘您确认要删除选中的记录吗?‘, function (data) { if (data) { $.ajax({ //url: virpath + ‘/api/Categories/‘ + arr, url: virpath + ‘/api/City/Delete/‘ + arr2str(arr), type: ‘delete‘, datatype: ‘application/json; charset=utf-8‘, error: function (result) { Msgalert(‘错误‘, ‘由于网络或服务器太忙,提交失败,请重试!‘, ‘error‘); grid.datagrid(‘clearSelections‘); }, success: function (content) { //content为请求处理后的返回值 var result = getObjectFrom(content); if (result.success) { Msgfade(‘操作成功‘); //提示消息 grid.treegrid(‘reload‘); grid.datagrid(‘clearSelections‘); } else { Msgalert(‘错误‘, result.msg, ‘error‘); } } }); } }); } else { Msgshow(‘请先选择要删除的记录。‘); } } function saveData() { dlg_Edit_form.form(‘submit‘, { url: dlg_Edit_form.url, onSubmit: function () { return $(this).form(‘validate‘); }, //success:function(data) {alert(data)} success: function (content) { //content为请求处理后的返回值 var result = getObjectFrom(content); if (result.success) { Msgfade(‘操作成功‘); //提示消息 grid.treegrid(‘reload‘); dlg_Edit.dialog(‘close‘); } else { Msgalert(‘错误‘, result.msg, ‘error‘); } } }); } function reload() { grid.treegrid(‘reload‘); } function showAll(ProvinceId) { grid.treegrid({ url: ‘/Api/City/Gett?ProvinceId=‘ + escape(ProvinceId) }); } function getSelectedProvinceId() { var provinceId = ‘‘; var rows = $(‘#gridleft‘).datagrid(‘getSelections‘); if (rows.length > 0) { provinceId = rows[0].ProvinceId; } return provinceId; } function exportData() { var filter = getSelectedProvinceId(); if (filter == ‘‘) return; window.blank = true; window.location = virpath + ‘/Api/City/GetExport/?provinceId=‘ + escape(filter) + ‘&recordCount=1000‘; }
CSHTML代码
@{ ViewBag.Title = "City"; Layout = "~/Views/Shared/_LeftFixTowColumnLayout1.cshtml"; ViewBag.AdminJsUrl = YbRapidSolution.Mvc.AutofacBootStrapper.RELEASE ? @Url.Content("~/Scripts/Admin/City.min.js") : @Url.Content("~/Scripts/Admin/City.js"); } < div id ="Dlg-Edit" title ="窗口" style ="width: 550px; height: 400px" buttons ="#buttons" > < div style ="padding: 20px 40px 40px 0px;" > < form method ="POST" id ="FormEdit" > < input name ="CityId" id ="CityId" type ="hidden" /> < input name ="ProvinceId" id ="ProvinceId" type ="hidden" /> < table style ="width: 100%" > < tr > < td class ="text-right" style ="width: 100px" > 名称: </ td > < td > < input type ="text" name ="Name" id ="Name" class ="easyui-validatebox easyui-textbox" data-options =‘required:true‘ maxlength ="15" style ="width: 100%" /> </ td > </ tr > < tr > < td class ="text-right" > 拼音: </ td > < td > < input type ="text" name ="Pingyin" id ="Pingyin" class ="easyui-validatebox easyui-textbox" maxlength ="50" style ="width: 100%" /> </ td > </ tr > < tr > < td class ="text-right" > 简拼: </ td > < td > < input type ="text" name ="Jiangpin" id ="Jiangpin" class ="easyui-validatebox easyui-textbox" maxlength ="15" style ="width: 100%" /> </ td > </ tr > < tr > < td class ="text-right" > 排序: </ td > < td > @* 货币参考配置:data-options="precision:2,groupSeparator:‘,‘,decimalSeparator:‘.‘,prefix:‘¥‘" style="width: 150px"/> *@ < input type ="text" name ="Sort" id ="Sort" class ="easyui-numberspinner" style ="width: 150px" /> </ td > </ tr > < tr > < td class ="text-right" > 备注: </ td > < td > < textarea type ="text" name ="Description" id ="Description" style ="width: 100%; height: 300px" maxlength ="1073741823" ></ textarea > </ td > </ tr > </ table > </ form > </ div > </ div > < div id ="buttons" style ="padding: 10px" > < a href ="javascript:void(0)" class ="easyui-linkbutton c1" iconcls ="icon-save" type ="PUT" onclick ="saveData()" >保存</a><a href="javascript:void(0)" class="easyui-linkbutton c2" iconcls="icon-cancel" onclick="javascript:$(‘#Dlg-Edit‘).dialog(‘close‘)">关闭</a></div>
控制器中添加
public IEnumerable<CityModel> Gett(int provinceId) { var items = _service.GetAll().Where(a => a.ProvinceId == provinceId).OrderBy(c => c.Sort); var model = items.ConvertTo(_convertCallback); return model; }
效果图
原文:http://www.cnblogs.com/yechangzhong-826217795/p/4177114.html
内容总结
以上是互联网集市为您收集整理的Easyui主从表设计全部内容,希望文章能够帮你解决Easyui主从表设计所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。