easyUI对列表的增、删、改、查例子。

列表前端:

<body class="easyui-layout">
    <div data-options="region:'north',border:false,iconCls:'icon-search',hideCollapsedContent:false" title="查询" style="padding:10px; height:80px;">
        <div>
            <form id="form1">
                <label for="txtSerachName">姓名:</label>
                @*<input type="text" id="build_path" name="[Equal]build_path" />*@  
                @Html.TextBox("UserName").ForSearch(QueryMethod.Contains)
                <a href="#" class="easyui-linkbutton" iconcls="icon-search" id="btnSerach" name="btnSerach">搜索</a>
            </form>
        </div>
    </div>
    <div id="List" data-options="region:'center'"></div>
    <div id="edit-window" title="编辑/添加" style="width: 600px; height: 400px; padding: 5px;">
    </div>
</body>

<script type="text/javascript">
    var grid;
    $(function () {
        initTable();
    });

    //初始化列表
    function initTable(queryData) {
        grid = $('#List').datagrid({
            title: "管理列表",
            url: '/admin/SYManager/list',
            width: 'auto',
            methord: 'post',
            height: 'auto',
            fitColumns: true,
            //sortName: 'id',
            //sortOrder: 'desc',
            idField: 'Id',
            pageSize: 15,
            pageList: [15, 20, 30, 40, 50],
            pagination: true,
            striped: true, //奇偶行是否区分
            singleSelect: true,//单选模式
            loadMsg: "Loading...",
            rownumbers: true,
            columns: [[
                { field: 'UserName', title: '账号', width: 100 },
                { field: 'RealName', title: '真实姓名', width: 200 },
                { field: 'Telephone', title: '手机号', width: 120 },
                {
                    field: 'UpdateTime', title: '操作时间', width: 140,
                    formatter: function (value) {
                        return FormatTime(value, "yyyy-MM-dd hh:mm:ss");
                    }
                },
                { field: 'EmailForm', title: '发件人邮箱地址', width: 200 },
                {
                    field: 'Status', title: '状态', width: 80,
                    formatter: function (value) {
                        if (value == 1) return "启用";
                        else if (value == 0) return "未启用";
                        else if (value == -1) return "删除";
                    }
                }
            ]],
            toolbar: [{
                id: 'btnadd',
                text: '添加用户',
                iconCls: 'icon-add',
                handler: function () {
                    //实现弹出添加用户信息的层
                    Add(0);
                }
            }, '-', {
                id: 'btncut',
                text: '修改用户',
                iconCls: 'icon-cut',
                handler: function () {
                    //实现弹出修改用户信息的层
                    Edit(0);
                }
            }, '-', {
                id: 'btnsave',
                text: '删除用户',
                iconCls: 'icon-remove',
                handler: function () {
                    //确认只删除一条用户信息
                    DeleteUserInfoByClick();
                }
            }]

        });
    }

    //添加信息
    function Add(parentID) {
        dialogWin = openDialog("#edit-window", "添加用户", "Add", "icon-add").dialog('open');
        return false;
    }

    //编辑信息
    function Edit(id) {
        var idArray = getSelectedArr(id);
        if (idArray.length == 0) {
            Msgfade("请选择一条记录进行操作!");
            return;
        }
        else if (idArray.length > 1) {
            Msgfade('只能选择一条记录进行修改!');
            return;
        }
        else {
            dialogWin = openDialog("#edit-window", "修改信息", "Edit?Id=" + idArray.join(','), "icon-edit").dialog('open');
        }
        return false;
    }

    function getSelectedArr(id) {
        var ids = [];
        var rows = grid.datagrid('getSelections');
        if (id == 0) {
            for (var i = 0; i < rows.length; i++) {
                ids.push(rows[i].Id);
            }
        }
        else {
            ids.push(id);
        }
        return ids;
    }

    //关闭编辑窗口并刷新列表
    function close() {
        dialogWin.dialog('close');
        refreshGrid();
    }
    //关闭编辑窗口
    function cancel() {
        dialogWin.dialog('close');
    }
    //刷新列表
    function refreshGrid() {
        grid.datagrid('reload');
        grid.datagrid('clearSelections');
    }
</script>

@*operation*@
<script type="text/javascript">
    $("#btnSerach").click(function () {
        grid.datagrid('options').queryParams = $("#form1").serializeJson();
        grid.datagrid("load");
        return false;
    });
</script>

添加前端:

@model TMS.Model.sy_Manager
@section Scripts{
    @Html.Partial("~/Areas/Admin/Views/Shared/_Layout_Base_Edit.cshtml");
}
<body class="easyui-layout">
    <div data-options="region:'center',border:true">
        @using (Html.BeginForm("Save", ViewContext.RouteData.Values["controller"].ToString(), FormMethod.Post, new { ID = "EditForm", name = "EditForm", style = "width:100%;height:100%;" }))
        {
            @Html.AntiForgeryToken()
            @Html.HiddenFor(m => m.Id)
            @Html.Hidden("SelectdRole")
            <div class="easyui-tabs" data-options="border:false,plain:true">
                <div title="基本属性" class="tab-content">
                    <dl>
                        <dt>用户名</dt>
                        <dd>
                            @Html.TextBoxFor(m => m.UserName, new { @class = "easyui-textbox", @required = "true" })
                        </dd>
                    </dl>
                    <dl>
                        <dt>密码</dt>
                        <dd>@Html.PasswordFor(m => m.Password, new { @class = "easyui-textbox", @required = "true", @value = Model.Password })</dd>
                    </dl>
                    <dl>
                        <dt>真实姓名</dt>
                        <dd>@Html.TextBoxFor(m => m.RealName, new { @class = "easyui-textbox" })</dd>
                    </dl>
                    <dl>
                        <dt>手机</dt>
                        <dd>@Html.TextBoxFor(m => m.Telephone, new { @class = "easyui-textbox" })</dd>
                    </dl>
                    <dl>
                        <dt> 发件人邮箱地址:</dt>
                        <dd>
                            @Html.TextBoxFor(m => m.EmailForm, new { @class = "easyui-textbox", @validtype = "email", @required = "true", @missingMessage = "不能为空", @invalidMessage = "邮箱格式不正确" })
                            <span class="alertright" id="email"></span>
                        </dd>
                    </dl><dl>
                        <dt>状态</dt>
                        <dd>
                            @Html.DropDownListFor(m => m.Status, new List<SelectListItem>{
                           (new SelectListItem(){Text="启用",Value="1"}),
                           (new SelectListItem(){Text="未使用",Value="0"}),
                           (new SelectListItem(){Text="删除",Value="-1"})}, new { @class = "easyui-combobox", data_options = "editable:false,panelHeight:'auto'", style = "width:150px;" })
                        </dd>
                    </dl>
                </div>
              
            </div>
        }
    </div>
    <div data-options="region:'south',border:false" style="text-align:center">
        <a href="javascript:void(0)" class="easyui-linkbutton c6" οnclick="return Save();" style="width:90px">Save</a>
        <a href="javascript:void(0)" class="easyui-linkbutton" οnclick="return window.parent.close();" style="width:90px">Cancel</a>
    </div>
    <script type="text/javascript">
        function Save() {
            var nodes = $('#roleSet').tree('getChecked');
            var s = '';
            for (var i = 0; i < nodes.length; i++) {
                if (s != '') s += ',';
                s += nodes[i].id;
            }
            $("#SelectdRole").val(s);
            btnSave();
        }
    </script>
</body>




后台:需要引用命名空间 

using Microsoft.Practices.Unity;
using System.Web.Mvc;
using System.Collections.Generic;
using System.EnterpriseServices;

列表:

public ActionResult List(QueryModel query)
        {
            if (Request.IsAjaxRequest())
            {
                query.PageIndex = Request["page"].DefaultIsNullOrEmpty(1);
                query.PageSize = Request["rows"].DefaultIsNullOrEmpty(2);
                query.Items.Add(new ConditionItem("Status", QueryMethod.NotEqual, -1));             
                var pagelist = service.FindAllByPage(query, p => p.UpdateTime);
                var easyUIPages = new Dictionary<string, object>();
                easyUIPages.Add("total", pagelist.TotalItemCount);
                easyUIPages.Add("rows", pagelist);

                return Json(easyUIPages, JsonRequestBehavior.AllowGet);
            }
            else
                return View();
        }
增加:

 public ActionResult Add()
        {
            ViewData.Model = new sy_Manager();
            return View(viewPath + "Edit.cshtml");
        }

修改:

   [Description("修改")]
        public ActionResult Edit(int id)
        {
            ViewData.Model = service.Find(id);
            return View(viewPath + "Edit.cshtml");
        }

保存:

 [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Save(sy_Manager formModel)
        {
            var result = false;
            var message = string.Empty;
            try
            {
                if (ModelState.IsValid)
                {
                    var selectedRole = Request["SelectdRole"].DefaultIsNullOrEmpty(string.Empty);
                    
                    if (formModel.Id != 0)
                    {
                        var model = service.Find(formModel.Id);
                        UpdateModel<sy_Manager>(model);
                        model.Password = Encrypt.MD5(model.Password);
                        model.UpdateTime = model.CreateTime = DateTime.Now;
                        service.Update(model);
                        message = "更新成功";
                    }
                    else
                    {
                        formModel.Password = Encrypt.MD5(formModel.Password);
                        formModel.UpdateUser = formModel.CreateUser = "admin";
                        formModel.UpdateTime = formModel.CreateTime = DateTime.Now;
                        service.Add(formModel);
                        message = "新增成功";
                    }                   
                    result = true;
                }
            }
            catch (Exception e)
            {
                result = false;
                message = "系统发生错误,请联系管理员";
                ModelState.AddModelError("", e.Message);
            }
            message += ModelStateExtensions.ExpendErrors(this);
            return Json(new { success = result, message = message }, JsonRequestBehavior.AllowGet);
        }

删除:

 public ActionResult Delete(string data)
        {
            string[] Ids = string.IsNullOrEmpty(data) ? new string[] { } : data.Split(',');
            int Id = -1;
            var result = false;
            var message = string.Empty;
            try
            {
                foreach (string str in Ids)
                {
                    if (int.TryParse(str, out Id)) //如果Id可以转换成int型
                    {
                        var model = service.Find(Id);
                        if (model != null)//如果model存在
                        {
                            UpdateModel<SmtpInfo>(model);
                            model.UpdateTime = DateTime.Now;
                            model.UpdateUser = "Admin";
                            model.Status = -1;
                            service.Update(model);
                            message = "删除成功";
                        }
                    }
                }
            }
            catch (Exception e)
            {                
                result = false;
                message = "系统发生错误,请联系管理员";
                ModelState.AddModelError("", e.Message);
            }
            message += ModelStateExtensions.ExpendErrors(this);
            return Json(new { success = result, message = message }, JsonRequestBehavior.AllowGet);
        }



EasyUI 是一个基于 jQuery 的 UI 库,可以快速地构建出美观的 web 应用程序。对于账户的功能,可以结合 EasyUI 提供的表格、表单、对话框等组件来实现。 以下是一个简单的账户管理示例: HTML: ```html <!-- 显示账户列表的表格 --> <table id="accountTable" class="easyui-datagrid" style="width:100%;height:400px" url="getAccounts.php" toolbar="#toolbar" pagination="true" rownumbers="true" fitColumns="true" singleSelect="true"> <thead> <tr> <th field="id" width="50" sortable="true">ID</th> <th field="name" width="100" sortable="true">姓名</th> <th field="email" width="150" sortable="true">邮箱</th> <th field="phone" width="100" sortable="true">电话</th> </tr> </thead> </table> <!-- 工具栏,包含新、编辑、除按钮 --> <div id="toolbar"> <a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newAccount()">新</a> <a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editAccount()">编辑</a> <a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="destroyAccount()">除</a> </div> <!-- 新/编辑账户的对话框 --> <div id="dlg" class="easyui-dialog" style="width:400px;height:280px;padding:10px 20px" closed="true" buttons="#dlg-buttons"> <div class="ftitle">账户信息</div> <form id="fm" method="post" novalidate> <div class="fitem"> <label>姓名:</label> <input name="name" class="easyui-textbox" required="true"> </div> <div class="fitem"> <label>邮箱:</label> <input name="email" class="easyui-textbox" validType="email"> </div> <div class="fitem"> <label>电话:</label> <input name="phone" class="easyui-textbox"> </div> </form> </div> <!-- 对话框底部的按钮 --> <div id="dlg-buttons"> <a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveAccount()" style="width:90px">保存</a> <a href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="$('#dlg').dialog('close')" style="width:90px">取消</a> </div> ``` JavaScript: ```javascript // 弹出新账户对话框 function newAccount() { $('#dlg').dialog('open').dialog('setTitle', '新账户'); $('#fm').form('clear'); } // 弹出编辑账户对话框 function editAccount() { var row = $('#accountTable').datagrid('getSelected'); if (row) { $('#dlg').dialog('open').dialog('setTitle', '编辑账户'); $('#fm').form('load', row); } } // 保存新/编辑的账户信息 function saveAccount() { $('#fm').form('submit', { url: 'saveAccount.php', onSubmit: function () { return $(this).form('validate'); }, success: function (result) { var result = eval('(' + result + ')'); if (result.success) { $('#dlg').dialog('close'); // 关闭对话框 $('#accountTable').datagrid('reload'); // 刷新表格 } else { $.messager.show({ title: 'Error', msg: result.msg }); } } }); } // 除选中的账户 function destroyAccount() { var row = $('#accountTable').datagrid('getSelected'); if (row) { $.messager.confirm('Confirm', '确定要除此账户吗?', function (r) { if (r) { $.post('destroyAccount.php', {id: row.id}, function (result) { if (result.success) { $('#accountTable').datagrid('reload'); // 刷新表格 } else { $.messager.show({ title: 'Error', msg: result.msg }); } }, 'json'); } }); } } ``` PHP: ```php <?php // getAccounts.php:获取账户列表 require_once('dbconfig.php'); $conn = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); if (!$conn) { die('连接数据库失败:' . mysqli_connect_error()); } $page = isset($_POST['page']) ? intval($_POST['page']) : 1; $rows = isset($_POST['rows']) ? intval($_POST['rows']) : 10; $offset = ($page - 1) * $rows; $result = array(); $result['total'] = mysqli_num_rows(mysqli_query($conn, "SELECT * FROM accounts")); $sql = "SELECT * FROM accounts LIMIT $offset,$rows"; $rs = mysqli_query($conn, $sql); $rows = array(); while ($row = mysqli_fetch_assoc($rs)) { $rows[] = $row; } $result['rows'] = $rows; mysqli_close($conn); echo json_encode($result); ?> <?php // saveAccount.php:保存新/编辑的账户信息 require_once('dbconfig.php'); $conn = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); if (!$conn) { die('连接数据库失败:' . mysqli_connect_error()); } $id = isset($_POST['id']) ? intval($_POST['id']) : 0; $name = isset($_POST['name']) ? mysqli_real_escape_string($conn, $_POST['name']) : ''; $email = isset($_POST['email']) ? mysqli_real_escape_string($conn, $_POST['email']) : ''; $phone = isset($_POST['phone']) ? mysqli_real_escape_string($conn, $_POST['phone']) : ''; if ($id > 0) { $sql = "UPDATE accounts SET name='$name',email='$email',phone='$phone' WHERE id=$id"; } else { $sql = "INSERT INTO accounts(name,email,phone) VALUES ('$name','$email','$phone')"; } if (mysqli_query($conn, $sql)) { $result = array('success' => true); } else { $result = array('success' => false, 'msg' => '保存失败:' . mysqli_error($conn)); } mysqli_close($conn); echo json_encode($result); ?> <?php // destroyAccount.php:除指定账户 require_once('dbconfig.php'); $conn = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); if (!$conn) { die('连接数据库失败:' . mysqli_connect_error()); } $id = isset($_POST['id']) ? intval($_POST['id']) : 0; if ($id > 0) { $sql = "DELETE FROM accounts WHERE id=$id"; if (mysqli_query($conn, $sql)) { $result = array('success' => true); } else { $result = array('success' => false, 'msg' => '除失败:' . mysqli_error($conn)); } } else { $result = array('success' => false, 'msg' => '无效的账户ID'); } mysqli_close($conn); echo json_encode($result); ?> ``` 这个示例中,使用了 EasyUI 提供的 `datagrid` 组件来显示账户列表,通过 `url` 属性指定了获取数据的 PHP 文件。在工具栏中,添加了新、编辑和除按钮,分别对应三个 JavaScript 函数 `newAccount()`、`editAccount()` 和 `destroyAccount()`。新和编辑时,会弹出一个对话框,使用 `form` 组件来输入账户信息,并通过 `submit` 方法提交表单数据到 `saveAccount.php` 文件进行保存。其中,提交表单数据时,使用了 `onSubmit` 属性来验证表单数据的有效性,`success` 回调函数中判断保存结果是否成功,并刷新账户列表除时,会弹出一个确认框,确认除后,通过 `post` 方法将账户 ID 提交到 `destroyAccount.php` 文件进行除操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值