首页 > 代码库 > EasyUI中datagrid实现显示、增加、 删除、 修改、 查询操作(后台代码C#)

EasyUI中datagrid实现显示、增加、 删除、 修改、 查询操作(后台代码C#)

2datagrid加载数据。代码如下所示

一、数据的显示

 1新建HtmlPage2.html页面,引入相关文件。如下所示

<script src=http://www.mamicode.com/"easyui/js/jquery-1.8.2.min.js"></script>
 <script src=http://www.mamicode.com/"easyui/js/jquery.easyui.min.js"></script>
 <link href=http://www.mamicode.com/"easyui/css/themes/default/easyui.css" rel="stylesheet" />
 <link href=http://www.mamicode.com/"easyui/css/themes/icon.css" rel="stylesheet" /> 
 
$(function () { $(‘#dg‘).datagrid({ url: ‘HtmlPage2.ashx‘,//请求数据的URL 代码附后 columns: [[ { field: ‘User_Name‘, title: ‘用户名‘, width: 100, align: ‘center‘ }, //User_Name为数据库表中的字段名称 下同 { field: ‘User_Pwd‘, title: ‘密码‘, width: 300, align: ‘center‘ }, { field: ‘User_Sex‘, title: ‘性别‘, width: 100, align: ‘center‘, formatter: function (value) { return value =http://www.mamicode.com/= 1 ?"男" : "女"; } }, { field: ‘User_Code‘, title: ‘员工号‘, width: 100, align: ‘center‘ }, { field: ‘CreateUserName‘, title: ‘创建者‘, width: 100, align: ‘center‘ }, { field: ‘Email‘, title: ‘电子邮件‘, width: 100, align: ‘center‘ }, { field: ‘ModifyUserName‘, title: ‘修改者‘, width: 100, align: ‘center‘ }, ]], width: 1066, rowStyler: function (index, row) { if (index % 2 == 0) { return ‘‘; } }, striped: true, pagination: true, rownumbers: true, singleSelect: true, pageNumber: 1, pageSize: 8, pageList: [1, 2, 4, 8, 16, 32], showFooter: true });}
<dody>
<table id="dg"></table> 
</body>
============================

HtmlPage2.ashx代码:
    using System.Data.SqlClient;    using System.Data;    using System.Text;    /// <summary>    /// HtmlPage2 的摘要说明    /// </summary>    public class HtmlPage2 : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/html";int page = int.Parse(context.Request.Form["page"]);//页码            int rows = int.Parse(context.Request.Form["rows"]);//页容量            InitData(context,page,rows);        }        private void InitData(HttpContext context,int pageindex,int pagesize)        {            int total;            string sql =string.Format("select * from (select *,ROW_NUMBER() over (order by user_id) as id from Base_UserInfo) as tmp where tmp.id between {0}+1  and {1}",(pageindex-1)*pagesize,pagesize*pageindex);            DataSet ds = new DataSet();            DataTable dt = new DataTable();            StringBuilder sb = new StringBuilder();            using (SqlConnection con = new SqlConnection("server=.;database=RM_DB;uid=sa;pwd=sa"))            {                con.Open();                SqlDataAdapter da = new SqlDataAdapter(sql, con);                da.Fill(ds);                dt = ds.Tables[0];                SqlCommand cmd = new SqlCommand("select count(*) from Base_UserInfo", con);//总行数                total =(int) cmd.ExecuteScalar();                con.Close();            }            sb.Append("{\"total\":" + total);            sb.Append(",");            sb.Append("\"rows\":[");
//转化为Json格式 foreach (DataRow row in dt.Rows) { sb.Append("{"); foreach (DataColumn column in dt.Columns) { sb.Append("\"" + column.ColumnName + "\":\"" + row[column.ColumnName].ToString() + "\","); } sb.Remove(sb.Length - 1, 1); sb.Append("},"); } sb.Remove(sb.Length - 1, 1); sb.Append("]}"); context.Response.Write(sb.ToString()); }
}

 3.效果如图所示

二、查询。在body中添加如下代码。
 <div class="easyui-accordion" style="width: 1066px; height: auto;">                        <div title="操作栏" data-options="" style="overflow: auto; padding: 10px;">                            <ul class="easyui-tree">                                <div style="margin: 10px 0;">                                </div>                                用户名:<input required="true" id="SearchUserName">&nbsp;                                 性别:<input required="true" id="SearchSex">&nbsp;                                 <a href="http://www.mamicode.com/#" class="easyui-linkbutton" id="search">查询</a>&nbsp;&nbsp;                                <a href="http://www.mamicode.com/#" class="easyui-linkbutton" id="add">新增</a>&nbsp;&nbsp;                                <a href="http://www.mamicode.com/#" class="easyui-linkbutton" id="delete">删除</a>&nbsp;&nbsp;                                <a href="http://www.mamicode.com/#" class="easyui-linkbutton" id="edit">编辑</a>&nbsp;&nbsp;                            </ul>                       </div></div>

效果图如下:

查询代码:

$("#search").click(function () {                $(‘#dg‘).datagrid({                    url: ‘/HtmlPage3.ashx‘,//代码附后                    loadMsg: ‘正在加载中‘,                    columns: [[                     { field: ‘User_Name‘, title: ‘用户名‘, width: 100 },                     { field: ‘User_Pwd‘, title: ‘密码‘, width: 100 },                     { field: ‘User_Sex‘, title: ‘性别‘, width: 100, align: ‘right‘, formatter: function (value) { return value =http://www.mamicode.com/= 1 ?"男" : "女"; } },                      { field: ‘User_Code‘, title: ‘员工号‘, width: 100 },                     { field: ‘CreateUserName‘, title: ‘创建者‘, width: 100 },                    ]], width: 1066,                    queryParams: {                        UserName: $("#SearchUserName").val(),                        sex: $("#SearchSex").val(),   //发送额外的参数                    },                    rowStyler: function (index, row) {                        if (index % 2 == 0) {                            return ‘color:#fff;‘;                        }                    },                    striped: true, pagination: true, rownumbers: true, singleSelect: true, pageNumber: 1, pageSize: 8, pageList: [1, 2, 4, 8, 16, 32], showFooter: true                })            })
============
HtmlPage3.ashx代码
using System.Data.SqlClient;    using System.Data;    using System.Text;    /// <summary>    /// HtmlPage2 的摘要说明    /// </summary>    public class HtmlPage2 : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/html";int page = int.Parse(context.Request.Form["page"]);            int rows = int.Parse(context.Request.Form["rows"]);            ChaxunData(context,page,rows);        }
  private void ChaxunData(HttpContext context,int pageindex,int pagesize)        {            int total;            string sql = "select * from (select *,ROW_NUMBER() over (order by user_id) as id from Base_UserInfo) as tmp where 1=1  ";            string tsql = string.Empty;            string UserName = context.Request.Form["UserName"];            string sex = context.Request.Form["sex"];            if (!string.IsNullOrEmpty(UserName))            {                sql += string.Format(" and User_Name=‘{0}‘", UserName) ;                tsql += string.Format(" and User_Name=‘{0}‘", UserName);            }            if (!string.IsNullOrEmpty(sex))            {                int s = (sex == "男") ? 1 : 0;                sql += string.Format(" and User_Sex=‘{0}‘ ",s);                tsql += string.Format(" and User_Sex=‘{0}‘", s);            }            sql += string.Format(" and  tmp.id between {0}+1  and {1}", (pageindex - 1) * pagesize, pagesize * pageindex);            DataSet ds = new DataSet();            DataTable dt = new DataTable();            StringBuilder sb = new StringBuilder();            using (SqlConnection con = new SqlConnection("server=.;database=RM_DB;uid=sa;pwd=sa"))            {                con.Open();                SqlDataAdapter da = new SqlDataAdapter(sql, con);                da.Fill(ds);                dt = ds.Tables[0];                SqlCommand cmd = new SqlCommand("select count(*) from Base_UserInfo  where 1=1 "+tsql, con);                total = (int)cmd.ExecuteScalar();                con.Close();            }            sb.Append("{\"total\":" + total);            sb.Append(",");            sb.Append("\"rows\":[");            foreach (DataRow row in dt.Rows)            {                sb.Append("{");                foreach (DataColumn column in dt.Columns)                {                    sb.Append("\"" + column.ColumnName + "\":\"" + row[column.ColumnName].ToString() + "\",");                }                sb.Remove(sb.Length - 1, 1);                sb.Append("},");            }            sb.Remove(sb.Length - 1, 1);            sb.Append("]}");            context.Response.Write(sb.ToString());        }
}
查询结果举例:支持查询结果的分页

 

 

三、新增、修改

  var isEdit=true;       //初始化操作窗体            $(‘#CommonWin‘).window({                width: 300,                height: 150,                modal: true,                minimizable: false,                maximizable: false,                draggable: false,                resizable: false,                collapsible: false,                title: ‘用户操作‘,                left: 400,                top: 400            }).window("close");------点击新增事件------ $("#add").click(function () {                isEdit = false;                $(‘#CommonWin‘).window("open");            })-------修改-------- $("#edit").click(function () {                isEdit = true;                var $selectRow = $("#dg").datagrid("getSelected");                if ($selectRow) {                    $.get("/operator.ashx?type=edit&User_ID=" + $selectRow.User_ID,                        function (js) {                            alert(js.data.User_Name);                            $("#userid").val(js.data.User_ID);                            $("#username").val(js.data.User_Name);                            $("#userpwd").val(js.data.User_Pwd);                            $("#usersex").val(js.data.User_Sex==1?"男":"女");                            $(‘#CommonWin‘).window("open");                        });                }                else {                    $.messager.alert(‘提示‘, ‘请选择要操作的行!‘, ‘info‘);                }            })------保存----   function Save() {            if (isEdit) {                SaveEdit();            }            else {                SaveAdd();            }        }---------------------- function SaveAdd() {            var form = $("#from1").serialize();            form += "&type=add";            $.post(                "/operator.ashx",//代码附后                form,                function (js) {                    $(‘#CommonWin‘).window("close");                    $("#dg").datagrid("reload");                })        } function SaveEdit() {            var form = $("#from1").serialize();            form += "&type=update";            $.post(                "/operator.ashx",                form,                function (js) {                    $(‘#CommonWin‘).window("close");                    $("#dg").datagrid("reload");                })        }-----------------------------body-----------<div id="CommonWin">    <form id="from1" >        <table border="0" cellspacing="0" cellpadding="0" width="100%">            <tr>                <td><input type="hidden" name="userid" id="userid" /></td>            </tr>            <tr>                <td>用户名:<input type="text" name="username" id="username"></td>            </tr>            <tr>                <td>密  码:<input type="text" name="userpwd" id="userpwd"></td>            </tr>            <tr>                <td>性  别:<input type="text" name="usersex" id="usersex"></td>            </tr>            <tr><td><input type="submit" value="http://www.mamicode.com/保存"  onclick="Save()"/></td></tr>        </table>    </form></div>

 operator.ashx代码:

   using System.Data.SqlClient;    using System.Data;    /// <summary>    /// _operator 的摘要说明    /// </summary>    public class _operator : IHttpHandler    {        /// <summary>        /// 当前上下文对象        /// </summary>        public HttpRequest Request        {            get            {                return HttpContext.Current.Request;            }        }        private HttpResponse Response        {            get { return HttpContext.Current.Response; }        }        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/html";           string type=Request.Params["type"];           switch (type)           {               case "add": Add(); break;               case "delete": Delete(); break;               case "edit": Edit(); break;               case "update": Update(); break;            }                   }        /// <summary>        /// 得到编辑的数据        /// </summary>        private void Edit()        {            string userid = Request.QueryString["User_ID"];            string sql = string.Format("select * from  Base_UserInfo where User_ID=‘{0}‘", userid);            DataTable dt = new DataTable();            DataSet ds = new DataSet();            using (SqlConnection con = new SqlConnection("server=.;database=RM_DB;uid=sa;pwd=sa"))            {                SqlDataAdapter da = new SqlDataAdapter(sql, con);                da.Fill(ds);                dt = ds.Tables[0];            }            MessageShow(1, "ww", dt);        }        /// <summary>        /// 添加        /// </summary>        private void Add()        {            string username = Request.Form["username"];            string userpwd = Request.Form["userpwd"];            string usersex = Request.Form["usersex"];            int i = (usersex == "男") ? 1 :( usersex == "女" )? 0 : 1;            string uid = Guid.NewGuid().ToString();            string sql = string.Format("insert Base_UserInfo(User_ID,User_Name,User_Pwd,User_Sex)values(‘{0}‘,‘{1}‘,‘{2}‘,{3})", uid, username, userpwd,i);            using (SqlConnection con = new SqlConnection("server=.;database=RM_DB;uid=sa;pwd=sa"))            {                con.Open();                SqlCommand cmd = new SqlCommand(sql, con);                cmd.ExecuteNonQuery();                con.Close();                MessageShow(1, "新增成功", null);            }        }       /// <summary>       /// 删除操作       /// </summary>        private void Delete()        {            string User_ID = Request.QueryString["User_ID"];//删除的主键            string sql="delete Base_UserInfo where User_ID=@User_ID";            using(SqlConnection con=new SqlConnection("server=.;database=RM_DB;uid=sa;pwd=sa"))            {                con.Open();                SqlCommand cmd = new SqlCommand(sql,con);                SqlParameter p = new SqlParameter("@User_ID", User_ID);                cmd.Parameters.Add(p);                cmd.ExecuteNonQuery();                con.Close();                MessageShow(1, "删除成功", null);            }        }        /// <summary>        /// 更新        /// </summary>        private void Update()        {          //todo();        }        /// <summary>        /// 统一返回浏览器消息        /// </summary>        /// <param name="s">状态</param>        /// <param name="m">消息提示</param>        /// <param name="d">数据</param>        public void MessageShow(int s, string m, object d)        {            MessageInfo min = new MessageInfo(s,m,d);            System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();            string ToJson = js.Serialize(min);            Response.Write(ToJson);        }        public bool IsReusable        {            get            {                return false;            }        }    }

 四 删除:

前端代码 后台代码见上

   //删除            $("#delete").click(function () {                var $selectRow = $("#dg").datagrid("getSelected");                if ($selectRow) {                    $.messager.confirm(‘确认对话框‘, ‘您确定要删除么?‘, function (r) {                        if (r) {                            $.get("/operator.ashx?type=delete&User_ID=" + $selectRow.User_ID,                                function (js) { $("#dg").datagrid("reload"); });                        }                    });                }                else {                    $.messager.alert(‘提示‘, ‘请选择要操作的行!‘, ‘info‘);                }            });

 注:数据库代码

USE [RM_DB]CREATE TABLE [dbo].[Base_UserInfo](    [User_ID] [dbo].[Name(50)] NOT NULL,    [User_Code] [dbo].[Name(50)] NULL,    [User_Account] [dbo].[Name(50)] NULL,    [User_Pwd] [dbo].[Name(50)] NULL,    [User_Name] [dbo].[Name(50)] NULL,    [User_Sex] [dbo].[ID] NULL,    [Title] [dbo].[Name(50)] NULL,    [Email] [dbo].[Name(20)] NULL,    [Theme] [dbo].[Name(50)] NULL,    [Question] [dbo].[Name(50)] NULL,    [AnswerQuestion] [dbo].[Name(50)] NULL,    [DeleteMark] [dbo].[ID] NULL,    [CreateDate] [Date] NULL,    [CreateUserId] [dbo].[Name(50)] NULL,    [CreateUserName] [dbo].[Name(50)] NULL,    [ModifyDate] [Date] NULL,    [ModifyUserId] [dbo].[Name(50)] NULL,    [ModifyUserName] [dbo].[Name(50)] NULL,    [User_Remark] [dbo].[Name(Max)] NULL, CONSTRAINT [PK_BASE_USERINFO] PRIMARY KEY NONCLUSTERED (    [User_ID] ASC)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFFGOEXEC sys.sp_addextendedproperty @name=N‘MS_Description‘, @value=http://www.mamicode.com/N‘用户主键‘ , @level0type=N‘SCHEMA‘,@level0name=N‘dbo‘, @level1type=N‘TABLE‘,@level1name=N‘Base_UserInfo‘, @level2type=N‘COLUMN‘,@level2name=N‘User_ID‘>