• EasyUi – 6.easyui常见问题


    1.进度条

    2.JQuery EasyUI弹出对话框解决Asp.net服务器控件无法执行后台代码的方法

    3. 三张表的连接查询现在到datagrid里

    4.日期组合框DateBox设置readonly的解决方法

    1.进度条

    //数据更新
                $('#A3').click(function () {
                                    
                    $.messager.progress({
                        title: 
    '请稍后', msg: '页面加载中...'
    
                    });
                    
                    $.post("Update.ashx", $("#EditForm").form().serialize(),
                                         function (msg) {
                                             
                                             //alert(msg);
                                             if (msg != 0) {
      
    
                                                 //刷新当前页reload
                                                 _datagrid.datagrid('reload', {
                                                     DeviceNumber: '',
                                                 });
                                                 $.messager.show({
                                                     title: '提示',
                                                     msg: "更新" + msg + "条数据!",
                                                     showType: 'show'
                                                 });
                                                 setTimeout(function
    () { $.messager.progress('close'); }, 100
    );
                                             } else {
    
                                                 $.messager.show({
                                                     title: '提示',
                                                     msg: "没有更新!",
                                                     showType: 'show'
                                                 });
                                                 setTimeout(function
    () { $.messager.progress('close'); }, 100
    );
                                             }
    
    
                                         }, 'json');

    image

    2.JQuery EasyUI弹出对话框解决Asp.net服务器控件无法执行后台代码的方法

    var dlg = $('#dd').dialog({
                    title: '导入excel,请选择..',
                     400,
                    height: 150,
                    closed: true,
                    cache: false,
                    modal: true,
                    //href: '../UpLoad.aspx'
                });
                //在点击按钮打开Dialog时,将div append到form里,使按钮生效。 
                dlg.parent().appendTo(jQuery("#form1"));
                
                //导入excel
                $('#A2').click(function () {
                    dlg.dialog('open');
                   
                    //console.info(dlg.parent());
                });

    html

    <form id="form1" runat="server">
            <div id="dd">
                <div>
                    <div id="fileQueue" style="margin-left: 20px">
                        <p>
                            <asp:FileUpload ID="FileUpload_excel" runat="server" />
                            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
                        </p>
                        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                    </div>
                </div>
            </div>
        </form>

    解决方法:在点击按钮打开Dialog时,将div append到form里,使按钮生效。

    将弹出div append到属于form里的div,那么服务器端控件就可以正常执行

    3. 三张表的连接查询现在到datagrid里

    3.1 存储过程:

    ------------------------------------
    --用途:查询PKE_DeviceContent与PKE_Franchiser还有PKE_DeviceNumber的3张表的连接查询
    --项目名称:
    --说明:查询PKE_DeviceContent多余的数据
    --时间:2013-09-08 20:11:23
    ------------------------------------
    ALTER PROCEDURE [dbo].[PKE_DeviceContent_Select]
    @GetOne nvarchar(50)
     AS 
        select a.ConID,a.DeviceNumber,a.longitude,a.latitude,a.AlarmStatus,a.uploadtime,
    a.vehicleState,a.PositionStatus,a.BeginTime,a.EndTime,a.Adderss,b.FranchiserName,c.Remark from 
     PKE_DeviceNumber b
    inner join dbo.PKE_Franchiser c
    on 
     c.FranchiserName=b.FranchiserName
     inner join PKE_DeviceContent a
     on 
     a.DeviceNumber=b.DeviceNumber
     where a.DeviceNumber like '%'+@GetOne+'%'

    image

    3.2 页面

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PKE_DeviceContent.aspx.cs" Inherits="Easyui.Web.PKE_DeviceContent.PKE_DeviceContent" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>设备列表</title>
        <script src="../Scripts/jquery-easyui-1.3.2/jquery-1.8.0.min.js"></script>
        <script src="../Scripts/jquery-easyui-1.3.2/jquery.easyui.min.js"></script>
        <link href="../Scripts/jquery-easyui-1.3.2/themes/default/easyui.css" rel="stylesheet">
        <link href="../Scripts/jquery-easyui-1.3.2/themes/icon.css" rel="stylesheet" />
        <script src="../Scripts/jquery-easyui-1.3.2/locale/easyui-lang-zh_CN.js"></script>
        <script src="../Scripts/date.js"></script>
        <link href="../css/cxlb.css" rel="stylesheet" />
         <script type="text/javascript">
             var LoginInputForm;
             var _datagrid;
             $(function () {
                 _datagrid = $('#datagrid').datagrid({
                     //传递额外的参数
                     queryParams: {
                         GetOneID: '',
                         PassWord: '',
                     },
                     url: 'PKE_DeviceContent.ashx',
                     rownumbers: true,//显示行号
                     idField: '设备号',//支持翻页后(记忆)——例:跨页删除
                     //fitColumns: true,//设置为true将自动使列适应表格宽度以防止出现水平滚动。
                     pagination: true,
                     nowarp: false, //内容换行:false(换) true(不换)
                     //fit:true, //自适应
                     pageSize: 10,
                     loadMsg: "努力加载中...",
                     singleSelect: true,
                     pageList: [10, 20, 30],
                     //toolbar: [{
                     //    text: '新增',
                     //    iconCls: 'icon-add',
    
                     //}, '-', {
                     //    text: '修改',
                     //    iconCls: 'icon-edit',
                     //}, '-', {
                     //    text: '删除',
                     //    iconCls: 'icon-remove',
                     //}, '-', {
                     //    text: '取消多选',
                     //    iconCls: 'icon-redo',
                     //}
                     //],
                     columns: [[
                         { field: 'ConID', title: '序列号',  100 },
                         { field: 'Remark', title: '客服',  150 },
                         {
                             field: 'DeviceNumber',
                             title: '设备号',
                              100,
                         },
                         { field: 'AlarmStatus', title: '报警状态',  150 },
                         { field: 'vehicleState', title: '车辆状态',  150 },
                         { field: 'PositionStatus', title: '定位状态',  150 },
                         { field: 'uploadtime', title: '上传时间',  150 },
                         { field: 'BeginTime', title: '开通时间',  150 },
                         { field: 'EndTime', title: '到期时间',  150 },
                         {
                             field: 'Adderss', title: '操作',  100,
                             formatter: function (value, row, index) {
                                 return '<a style="cursor:pointer;" onclick="show(' + index + ')">详细</a>';
                             }
                         }
                     ]],
                     loadFilter: function (data) {
                         //console.info(data.rows);
                         if (data.rows=="004") {
                             $.messager.alert('Warning', '您的权限已经过期!
     请重新登录!!');
                         } else {
                             return data;
                         }
                     }
                 });
    
    
                 //查询
                 $('#btn').click(function () {
                     _datagrid.datagrid('load', {
                         GetOneID: $('#cx_lb').find("[name='username']").val(),
                         //PassWord: $('#cx_lb').find("[name='PassWord']").val(),
                     });
                 });
    
                 //清空
                 $('#A1').click(function () {
                     _datagrid.datagrid('load', {
                         GetOneID: '',
                     });
                     $('#cx_lb').find('input').val('');
                 });
    
                 $.extend($.fn.validatebox.defaults.rules, {
                     minLength: {
                         validator: function (value, param) {
                             return value.length >= param[0];
                         },
                         message: 'Please enter at least {0} characters.'
                     }
                 });
    
             });
    
    
             function show(i) {
                 var row = _datagrid.datagrid('getRows');
                 console.info(row[i]);
                 $(".pageFormContent").dialog({
                     title: '详细记录',
                     closable: true,
                     modal: true,
                     buttons: [{
                         text: '添加',
                         iconCls: 'icon-ok',
                         handler: function () {
                             //***先验证(根据自己的需求)
                             //if (LoginInputForm.form('validate')) {
                             //1.表单form提交
                             //LoginInputForm.submit();
    
                             //2.ajax提交
                             $.ajax({
                                 type: "POST",
                                 url: "Add.ashx",
                                 dataType: "json",
                                 data: $('#LoginInputForm').form().serialize(),
    
                                 success: function (msg) {
                                     //alert(msg);
                                     if (msg == "1") {
                                         $("#LoginAndRegDialog").dialog("close");
                                         _datagrid.datagrid('load', {
                                             UserName: '',
                                         });
                                         $.messager.show({
                                             title: '提示',
                                             msg: "添加成功!"
                                         });
                                     } else if (msg == "0") {
                                         //alert($("#LoginInputForm input[name='name']").val());
                                         $.messager.show({
                                             title: '提示',
                                             msg: "账号【" + $("#LoginInputForm input[name='name']").val() + "】已经存在,请重新填写!"
                                         });
                                     }
    
                                 }
                             });
                             //}
                         }
                     }]
                 });
             }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
                </form>
            <div class="easyui-layout" fit="true">
            <div data-options="region:'north',title:'查询列表',split:true" class="datagrid-toolbar" style="height: 75px;">
                <form id="cx_lb">
                    <table class="cx_lb_table">
                        <tr>
                            <th>设备号:</th>
                            <td width="200">
                                <input type="text" name="username" /></td>
                            <td>
                                <a id="btn" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'">查询</a>
                            </td>
                            <td>
                                <a id="A1" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-reload'">清空</a>
                            </td>
                        </tr>
                    </table>
                </form>
            </div>
            <div data-options="region:'center',title:'本地设备列表'" style="padding: 5px; background: #eee;">
                <table id="datagrid"></table>
            </div>
    
        </div>
    
    </body>
    </html>

    image

    3.3 一般处理程序PKE_DeviceContent.ashx

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web;
    using System.Web.SessionState;
    using Newtonsoft.Json.Linq;
    
    namespace Easyui.Web.PKE_DeviceContent
    {
        /// <summary>
        /// PKE_DeviceContent1 的摘要说明
        /// </summary>
        public class PKE_DeviceContent1 : IHttpHandler, IRequiresSessionState
        {
            private HttpRequest Request;
            private DataSet ds;
            private string json;
    
            public void ProcessRequest(HttpContext context)
            {
    
    
                Request = context.Request;
                int rows = int.Parse(Request["rows"]);
                int page = int.Parse(Request["page"]);
                string getOne = Request["GetOneID"];
                //session 账号
                //string username = Convert.ToString(context.Session["username"]);
                string username = "tangge";
                //验证账号
                //if (string.IsNullOrEmpty(username))
                //{
                //    context.Response.Write("{"rows":"004"}");
                //}
                //else
                //{
                    context.Response.ContentType = "text/html";
                    SqlParameter[] parameters =
                        {
                            new SqlParameter("@GetOne", SqlDbType.VarChar, 255),
                        };
                    parameters[0].Value = getOne;
    
                    DataSet ds = DBUtility.DbHelperSQL.RunProcedure("PKE_DeviceContent_Select", parameters,
                                                                    "PKE_DeviceContent");
    
                    json = DBUtility.JsonConvert.DatasetToJson(ds);
    
                    JObject jObj = JObject.Parse(json);
                    JToken ageToken = jObj["total"];
                    int total = int.Parse(ageToken.ToString());
    
                    //转化为Jarray
                    JArray jconte = (JArray) jObj["rows"];
    
    
                    //names:返回所有Remark(客服姓名)
                    //var names = from staff in jObj["rows"].Children()
                    //            select (string)staff["Remark"];
                    var remark = jObj.SelectToken("rows").Select(p => p["Remark"]).ToList();
                    ;
    
                    //设置行数:相当于total(如:客服tangge,数量5个,cou就等于5)
                    int cou = 0;
                    //设置内容:把(remark[y].ToString() == username)的remark添加进去
                    ArrayList contelist = new ArrayList();
    
    
    
    
    
                    for (int y = 0; y < remark.Count; y++)
                    {
                        if (remark[y].ToString() == username)
                        {
                            cou++;
                            contelist.Add(((remark[y].Parent)).Parent);
                        }
                    }
    
                    ArrayList list = new ArrayList();
    
                    string tt = null;
                    //如果page是第1页and总数小于行数(例:总数4,行数10)
                    if (page == 1 && cou <= rows)
                    {
                        //根据前台 rows 得到 content
                        for (int i = 0; i < rows - (rows - cou); i++)
                        {
                            list.Add(contelist[i]);
                        }
    
                        foreach (var cc in list)
                        {
                            tt += cc + ",";
                        }
                    } //page是第1页 and 总数大于行数(例:总数11,行数10)
                    else if (page == 1 && cou > rows)
                    {
                        //根据前台 rows 得到 content   
                        for (int i = 0; i < rows; i++)
                        {
                            list.Add(contelist[i]);
                        }
    
                        foreach (var cc in list)
                        {
                            tt += cc + ",";
                        }
                    }
                        //page不等于1 and 总数大于行数
                    else if (page != 1 && cou > rows)
                    {
                        //行数乘以页数减去总数大于0,说明:(总数:31,页数:4,显示最后1行)
                        if (rows*page - total > 0)
                        {
                            for (int i = (page - 1)*rows; i < cou; i++)
                            {
                                list.Add(contelist[i]);
                            }
    
                            foreach (var cc in list)
                            {
                                tt += cc + ",";
                            }
                        }
                            //行数乘以页数减去总数小于等于0,(总数:31,页数:2,显示10行)
                        else if (rows*page - cou <= 0)
                        {
                            for (int i = (page - 1)*rows; i < rows*page; i++)
                            {
                                list.Add(contelist[i]);
                            }
    
                            foreach (var cc in list)
                            {
                                tt += cc + ",";
                            }
                        }
    
                    }
                    if (total == 0)
                    {
                        context.Response.Write(json);
                    }
                    else
                    {
                        string jsonstring = "{"total":" + cou + ","rows":[" + tt.ToString() + "]}";
                        context.Response.Write(jsonstring.Remove(jsonstring.Length - 3, 1));
                    }
                //}
            //}
        }
    
        public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }

    4.日期组合框DateBox设置readonly的解决方法。

    //继承自combo,使用combo的editable属性设置readonly.
                $("#BeginTime").datebox({ editable: false });
                //$("#Content input[name='BeginTime']").attr('readonly', 'readonly');
                $("#EndTime").datebox({ editable: false });
                //$("#Content input[name='EndTime']").attr('readonly', 'readonly');
  • 相关阅读:
    numpy数组(一)
    Iterator和Iterable区别:
    jupyter notebook安装相关问题
    Selenium+Headless Firefox配置
    最长不重复子串
    deprecated conversion from string constant to 'char*
    c++求字符串
    原型模式(Prototype)
    工厂方法模式(Factory Method)
    素数序列的生成及其应用(采用了自研的高效算法)
  • 原文地址:https://www.cnblogs.com/tangge/p/3311820.html
Copyright © 2020-2023  润新知