【Jqurey EasyUI+Asp.net】---DataGrid的增、删、改、查

前面是写了两篇,但都不怎么完整,比较才刚开始学这个,都是摸着石头过河,一步一步的来。这两天终于把DataGrid的增删改查融合到一起了,所以分享一下,希望对和我一样的初学者都点帮助。

直接主题吧。

还是想说数据表吧,我建了一个很简单的表Rex_Test

ID 自增序号
tName 姓名
tEmail 邮箱

前台代码:

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link rel="stylesheet" type="text/css" href="jquery-easyui-1.3.6/themes/default/easyui.css" />
    <link rel="stylesheet" type="text/css" href="jquery-easyui-1.3.6/themes/icon.css" />
    <link rel="stylesheet" type="text/css" href="demo.css" />
    <script type="text/javascript" src="jquery-easyui-1.3.6/jquery.min.js"></script>
    <script type="text/javascript" src="jquery-easyui-1.3.6/jquery.easyui.min.js"></script>
    <script type="text/javascript">
        function getQueryParams(queryParams)
        {

            var tkey = document.getElementById("tkey").value;
            //alert(tkey);
            //$("#quanxian").combobox("getValue");  

            queryParams.tkey = tkey;

            return queryParams;

        }
        //增加查询参数,重新加载表格
        function reloadgrid()
        {

            //查询参数直接添加在queryParams中
            var queryParams = $('#tt').datagrid('options').queryParams;
            getQueryParams(queryParams);
            $('#tt').datagrid('options').queryParams = queryParams;
            $("#tt").datagrid('reload');

        }
        function add()
        {
            //清空内容
            $('#fm').form('clear');

            $('#dlg').dialog('open').dialog('setTitle', '添加邮箱');
            document.getElementById("test").value = "add";
        }

        //修改
        function editUser()
        {

            var row = $('#tt').datagrid('getSelected');

            if (row == null) {
                $.messager.alert("提示", "请选择要修改的行!", "info");
            }

            if (row) {

                //获取要修改的字段
                $('#tName').val(row.tName);
                $('#tEmail').val(row.tEmail);

                $('#dlg').dialog('open').dialog('setTitle', '修改邮箱');
                document.getElementById("test").value = "modify";
                $('#fm').form('load', row);

            }
        }
        function removeUser()
        {
            var test = document.getElementById("test").value = "delete";
            var row = $('#tt').datagrid('getSelected');
            if (row == null) {
                $.messager.alert("提示", "请选择要删除的行!", "info");
            }
            if (row) {
                $.messager.confirm('提示', '你确定要删除这条信息吗?', function (r)
                {
                    if (r) {
                        $('#fm').form('submit', {
                            url: 'Handler5.ashx/ProcessRequest?ID=' + row.ID + "&test=" + test,
                            onSubmit: function ()
                            {
                                //return $(this).form('validate');
                            },
                            success: function (result)
                            {
                                if (result.indexOf("T") == 0) {
                                    $('#dlg').dialog('close');
                                    //$('#tt').datagrid('clearSelections'); //清空选中的行
                                    $.messager.alert("提示", "恭喜您,信息删除成功!", "info");
                                    //alert('恭喜您,信息删除成功!')
                                    // close the dialog
                                    $('#tt').datagrid('reload');
                                    //$('#fm').form('submit');

                                }
                                else {
                                    $.messager.alert("提示", "删除失败,请重新操作!", "info");
                                    //alert('添加失败,请重新操作!')
                                    return;
                                    //$('#fm').form('submit');
                                }

                            }

                        });
                    }
                })
            }
        }
        function saveUser() {  

            var tName = document.getElementById("tName").value;
            var tEmail = document.getElementById("tEmail").value;
            //alert(tName + "<br/>" + tEmail);
            var test = document.getElementById("test").value;
            if (test == "add") {
                $('#fm').form('submit', {
                    url: "Handler5.ashx?test=" + test + "&tName=" + tName + "&tEmail=" + tEmail,
                    onSubmit: function ()
                    {
                        return $(this).form('validate');
                    },
                    success: function (result)
                    {
                        //alert(result);
                        if (result.indexOf("T") == 0) {
                            $('#dlg').dialog('close');
                            $.messager.alert("提示", "恭喜您,信息添加成功", "info");
                            //alert('恭喜您,信息添加成功!')
                            // close the dialog
                            $('#tt').datagrid('reload');
                            //$('#fm').form('submit');
                        }
                        else {
                            $.messager.alert("提示", "添加失败,请重新操作!", "info");
                            return;
                            //alert('添加失败,请重新操作!')
                        }
                    }
                });  

            }
            else {
                var row = $('#tt').datagrid('getSelected');
                if (row) {
                    //获取要修改的字段
                    var ID = row.ID;
                    //alert(ID);
                }
                $('#fm').form('submit', {
                    url: "Handler5.ashx?test=" + test + "&ID=" + ID + "&tName=" + tName + "&tEmail=" + tEmail,
                    onSubmit: function ()
                    {
                        return $(this).form('validate');
                    },
                    success: function (result) {
                        if (result.indexOf("T") == 0) {
                            $('#dlg').dialog('close');
                            //$('#tt').datagrid('clearSelections'); //清空选中的行
                            $.messager.alert("提示", "恭喜您,信息修改成功", "info");
                            //alert('恭喜您,信息添加成功!')
                            // close the dialog
                            $('#tt').datagrid('reload');
                            //$('#fm').form('submit');
                        }
                        else {
                            $.messager.alert("提示", "修改失败,请重新操作!", "info");
                            return;
                        //alert('添加失败,请重新操作!')
                        }
                    }
                });
            }
        }
    </script>
</head>
<body>
    <form id="fm" method="post">
    <div>
        <%--表格显示区--%>
        <table id="tt" title="设置" class="easyui-datagrid" style="width: auto; height: 660px;"
            idField="ID" pagination="true" data-options="iconCls:'icon-save',rownumbers:true,url:'Handler5.ashx/ProcessRequest',pageSize:20, pageList:[20,30,40,50],method:'get',toolbar:'#tb',striped:true"
            fitcolumns="true">
            <%--striped="true"--%>
            <%-- 表格标题--%>
            <thead>
                <tr>
                    <th data-options="field:'ID',checkbox:true">
                    </th>
                    <th data-options="field:'tName',width:100">
                        姓名
                    </th>
                    <th data-options="field:'tEmail',width:320,align:'center'">
                        邮箱
                    </th>
                </tr>
            </thead>
            <%--表格内容--%>
        </table>
        <%--功能区--%>
        <div id="tb" style="padding: 5px; height: auto">
            <%-- 包括添加,修改、删除 --%>
            <div style="margin-bottom: 5px">
                <a href="javascript:void(0)" onclick="add()" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true"></a>
                <a href="javascript:void(0)" onclick="editUser() " class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true"></a>
                <a href="javascript:void(0)" onclick="removeUser()" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true"></a>
            </div>
            <%-- 查找信息 --%>
            <div>
                姓名:
                <input id="tkey" />
                <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'" onclick="reloadgrid()">
                    Search</a>
            </div>
        </div>
        <div id="dlg" class="easyui-dialog" style="width: 400px; height: auto; padding: 10px 20px"
            data-options="closed:true,buttons:'#dlg-buttons'">
            <%--closed="true" buttons="#dlg-buttons"--%>
            <div class="ftitle">
                邮箱信息</div>

            <div class="fitem">
                <label>
                    姓名:</label>
                <input id="tName" name="tName" class="easyui-validatebox" data-options="required:true" />
            </div>
            <div class="fitem">
                <label>
                    邮箱:</label>
                <input id="tEmail" name="tEmail" class="easyui-validatebox" data-options="required:true" />
                <input name="Test" id="test" type="hidden" />
                <input name="ID" id="ID" type="hidden" />
                <input id="key" name="key" onkeydown="if(event.keyCode==13)reloadgrid()" type="hidden" />
            </div>

        </div>
        <div id="dlg-buttons">
            <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-ok'" onclick="saveUser()">
                保存</a> <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-cancel'"
                    onclick="javascript:$('#dlg').dialog('close')">关闭</a>
        </div>
    </div>
    </form>
</body>
</html>

然后这里就是一般处理程序

Handler5.ashx

<%@ WebHandler Language="C#" Class="Handler5" %>

using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Text;

public class Handler5 : IHttpHandler {

        public void ProcessRequest(HttpContext context)
        {

            string command = context.Request.QueryString["test"];//前台传的标示值
            if (command == "add")
            {//调用添加方法
                Add(context);
            }
            else if (command == "modify")
            {//调用修改方法
                Modify(context);
            }
            else if (command == "delete")
            {
                Delete(context);
            }
            else
            {
                Query(context);
            }
            //Query(context);

        }  

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

        public void Add(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string xx = string.Empty;

            string tname = context.Request.QueryString["tName"];
            string temail = context.Request.QueryString["tEmail"];
            SqlHelp sqla = new SqlHelp();
            string sqlString = "insert into Rex_Test(tName,tEmail) values('" + tname + "','" + temail + "')";
            bool aa= sqla.ExecuteNonQuery(sqlString);
            sqla.SqlClose();
            if (aa)
            {
                xx = "True";
            }
            else
            {
                xx="False";
            }
            context.Response.Write(xx);
        }
    public void Modify(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        string yy = string.Empty;
        string id = context.Request.QueryString["ID"];
        string tname = context.Request.QueryString["tName"];
        string temail = context.Request.QueryString["tEmail"];
        SqlHelp sqlb = new SqlHelp();
        string sqlString = "update Rex_Test set tName='"+tname+"',tEmail='"+temail+"' where ID='"+id+"'";
        bool bb= sqlb.ExecuteNonQuery(sqlString);
        sqlb.SqlClose();
        if (bb)
        {
            yy = "True";
        }
        else
        {
            yy = "False";
        }
        context.Response.Write(yy);
    }
    public void Delete(HttpContext context)
    {
        context.Response.ContentType = "text/plain";

        string zz = string.Empty;
        string id=context.Request.QueryString["ID"];

            SqlHelp sqlc = new SqlHelp();
            string strfacc = "delete from Rex_Test where ID='"+id+"'";
            sqlc.ExecuteNonQuery(strfacc);
            sqlc.SqlClose();
            context.Response.Write("True");

    }
        /// <summary>
        /// 查询记录
        /// </summary>
        /// <param name="context"></param>
        public void Query(HttpContext context)
        {  

            context.Response.ContentType = "text/plain";
            //===============================================================  

            string tkey;
            tkey = "";
            //获取前台传来的值
            if (null != context.Request.QueryString["tkey"])
            {//获取前台传来的值
                tkey = context.Request.QueryString["tkey"].ToString().Trim();
            }  

            //================================================================
            //获取分页和排序信息:页大小,页码,排序方式,排序字段
            int pageRows, page;
            pageRows = 10;
            page = 1;
            string order, sort, oderby; order = sort = oderby = "";
            if (null != context.Request.QueryString["rows"])
            {
                pageRows = int.Parse(context.Request.QueryString["rows"].ToString().Trim());  

            }
            if (null != context.Request.QueryString["page"])
            {  

                page = int.Parse(context.Request.QueryString["page"].ToString().Trim());  

            }
            if (null != context.Request.QueryString["sort"])
            {  

                order = context.Request.QueryString["sort"].ToString().Trim();  

            }
            if (null != context.Request.QueryString["order"])
            {  

                sort = context.Request.QueryString["order"].ToString().Trim();  

            }  

            //===================================================================
            //组合查询语句:条件+排序
            StringBuilder strWhere = new StringBuilder();
            if (tkey != "")
            {
                strWhere.AppendFormat("tName like '%{0}%' and ", tkey);
            }  

            //删除多余的and
            int startindex = strWhere.ToString().LastIndexOf("and");//获取最后一个and的位置
            if (startindex >= 0)
            {
                strWhere.Remove(startindex, 3);//删除多余的and关键字
            }
            if (sort != "" && order != "")
            {
                //strWhere.AppendFormat(" order by {0} {1}", sort, order);//添加排序
                oderby = order + " " + sort;
            }
            //DataSet ds = Bnotice.GetList(strWhere.ToString());  //调用不分页的getlist  

            //调用分页的GetList方法
            DataSet ds = GetListByPage(strWhere.ToString(), oderby, (page - 1) * pageRows + 1, page * pageRows);
            int count = GetRecordCount(strWhere.ToString());//获取条数
            string strJson = ToJson.Dataset2Json(ds, count);//DataSet数据转化为Json数据
            context.Response.Write(strJson);//返回给前台页面
            context.Response.End();  

        }
        public int GetRecordCount(string strWhere)
        {
            SqlHelp sqlx = new SqlHelp();
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select count(1) FROM Rex_Test");
            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }
            int obj = sqlx.ReturnCount(strSql.ToString());
            sqlx.SqlClose();
            if (obj<=0)
            {
                return 0;
            }
            else
            {
                return Convert.ToInt32(obj);
            }
        }
        /// <summary>
        /// 分页获取数据列表
        /// </summary>
        public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
        {
            SqlHelp sqly = new SqlHelp();
            try
            {

                StringBuilder strSql = new StringBuilder();
                strSql.Append("SELECT * FROM ( ");
                strSql.Append(" SELECT ROW_NUMBER() OVER (");
                if (!string.IsNullOrEmpty(orderby.Trim()))
                {
                    strSql.Append("order by T." + orderby);
                }
                else
                {
                    strSql.Append("order by ID asc");
                }
                strSql.Append(")AS Row, T.*  from Rex_Test T ");
                if (!string.IsNullOrEmpty(strWhere.Trim()))
                {
                    strSql.Append(" WHERE " + strWhere);
                }
                strSql.Append(" ) TT");
                strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
                return sqly.GetDataSet(strSql.ToString());
            }
            finally { sqly.SqlClose(); }
        }  

}

最有还有一个Json转换类

ToJson.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.IO;

/// <summary>
///ToJson 的摘要说明
/// </summary>
public class ToJson
    {

        /// <summary>
        /// DataSet转换成Json格式
        /// </summary>
        /// <paramname="ds">DataSet</param>
        ///<returns></returns>
        public static string Dataset2Json(DataSet ds, int total = -1)
        {
            StringBuilder json = new StringBuilder();

            foreach (DataTable dt in ds.Tables)
            {
               //{"total":5,"rows":[
               json.Append("{\"total\":");
                if (total == -1)
                {
                    json.Append(dt.Rows.Count);
                }
                else
                {
                    json.Append(total);
                }
               json.Append(",\"rows\":[");
               json.Append(DataTable2Json(dt));
                json.Append("]}");
            }
            return json.ToString();
        }

        /// <summary>
        /// dataTable转换成Json格式
        /// </summary>
        /// <paramname="dt"></param>
        ///<returns></returns>
        public static  string DataTable2Json(DataTable dt)
        {
            StringBuilder jsonBuilder = new StringBuilder();

            for (int i = 0; i <dt.Rows.Count; i++)
            {
               jsonBuilder.Append("{");
                for (int j = 0; j <dt.Columns.Count; j++)
                {
                   jsonBuilder.Append("\"");
                   jsonBuilder.Append(dt.Columns[j].ColumnName);
                   jsonBuilder.Append("\":\"");
                   jsonBuilder.Append(dt.Rows[i][j].ToString());
                   jsonBuilder.Append("\",");
                }
                if (dt.Columns.Count > 0)
                {
                   jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
                }
               jsonBuilder.Append("},");
            }
            if (dt.Rows.Count > 0)
            {
               jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
            }

            return jsonBuilder.ToString();
        }

    }

通过以上几步,基本上可以实现DataGrid的增删改查,其它功能还在学习中,请多多指教。

哦,对了,我发现这个Jqurey EasyUI DataGrid的一些功能,比如刷新、分页这些在IE11下,不怎么兼容样,如果有知道解决方法的朋友,希望可以留言,给大家分享一下,谢了。

【Jqurey EasyUI+Asp.net】---DataGrid的增、删、改、查,布布扣,bubuko.com

时间: 2024-11-18 01:05:59

【Jqurey EasyUI+Asp.net】---DataGrid的增、删、改、查的相关文章

Python---MySQL数据库之四大操作(增 删 改 查)

一.对数据库,表,记录---四大操作(增 删 改 查) 1.操作数据库 (1)对数据库(文件夹):进行增加操作 Create  database  库名; 例:  Create  database  db7 ; 查询库: show  databases; 结果: +-----------------------------+ | Database                   | +----------------------------+ | information_schema | |

ADO.NET 增 删 改 查

ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访问技术的基础 连接数据库基本格式:需要两个类1.数据库连接类 SqlConnection2.数据库操作类 SqlCommand 1.连接数据库写连接字符串,立马就要想到有4点要写完,1.连接哪台服务器,2.连接哪个数据库,3.连接用户名,4.密码string sql = "server=.(服务器i

oracle 11g 建库 建表 增 删 改 查 约束

一.建库 1.(点击左上角带绿色+号的按钮) 2.(进入这个界面,passowrd为密码.填写完后点击下面一排的Test按钮进行测试,无异常就点击Connect) 二.建表 1-1. create table 表名1( Tid number(4) --primary key 列级约束(主键), Tname varchar(10) --ont null  非空约束,只能定义在列级约束, Tsex varchar2(2)--check (tsex='男'  or  tsex='女') 检查约束, T

数据库基础学习4--表格的 增 删 改 查(简单查询与高级查询)

一.增 C:create 增加,创建,向数据库里面添加数据. insert into Fruit values('K009','苹果',3.0,'高青',90,'') insert into Fruit(Ids,Name,Price,Source,Numbers) values('K010','苹果',3.0,'高青',90) 二.改 U:update修改,从数据库表里面修改数据. update Fruit set Source='烟台' where Ids='K001' 三.删 D:delet

php基础:数据库的含义和基本操作 增 删 改 查

//数据库是帮我们管理数据的一个软件,我们将数据给他,放进数据库里.他能很稳妥的帮我们管理起来,且效率很高.//php的大部分工作就是  php->连接数据库->写入数据->查出数据->格式化数据->显示出来,//数据库管理数据是以表的形式组成的,多行多列,表头声明好了,一个表创建好了,剩下的就是往里面添加数据 多张表放在一个文件夹里面就形成了库  mysql服务器帮我们管理多个库C:\wamp\bin\mysql\mysql5.6.12\data   数据库中的数据放在这个

SQL 增/删/改/查 (总结)

1.增 INSERT  INTO  表名  VALUES (" "," ") ; INSERT INTO 表名(字段)  VALUES(" "); 2. 删 DELETE   FROM 表名  WHERE  ... 3.改 UPDATE  表名 SET   ... WHERE  ... 4.查 SELECT × FROM  表名 ORDER BY ...

1-24.list的增,删,改,查

增: 1.append(通过元素增加,默认加在最后print(a.append('hgf'))) 2.extend( 迭代的去增,就是把字符串的字符逐个去给这个列表加上去) 3.insert((按照索引去增加,前为索引,后为增加的字) 删: 1,pop(通过位置索引去删除) 2.del (通过索引,切片删除) 3.clear(清空列表) 4.remove(通过元素去删除) #返回值是什么意思? 改: a[]='i' print() 查: for i in a: print(a) 其他列表 1.s

创建-增-删-改-查

1.创建数组 2.增 1)push , unshift 2)splice var arr3 = [1,2,3,4,6]; var result = arr3.splice(2,0,"sdf") //第二个位置,删除0个元素,插入值 console.log(arr3) // [1, 2, "sdf", 3, 4, 6] 3)length var arr = [1,2]; arr[arr.length] = 3 console.log(arr); //  [1, 2,

Android 增,删,改,查 通讯录中的联系人

一.权限 操作通讯录必须在AndroidManifest.xml中先添加2个权限, <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission> <uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>

js数组的管理[增,删,改,查]

今天在设计表单的时候遇到对数组的一些处理的问题,比如说怎么创建一个数组,然后牵扯到数组的增删改查的方法.请看API FF: Firefox, N: Netscape, IE: Internet Explorer 方法 描述 FF N IE concat() 连接两个或更多的数组,并返回结果. 1 4 4 join() 把数组的所有元素放入一个字符串.元素通过指定的分隔符进行分隔. 1 3 4 pop() 删除并返回数组的最后一个元素 1 4 5.5 push() 向数组的末尾添加一个或更多元素,