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,请选择..',
                width: 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: '序列号', width: 100 },
                     { field: 'Remark', title: '客服', width: 150 },
                     {
                         field: 'DeviceNumber',
                         title: '设备号',
                         width: 100,
                     },
                     { field: 'AlarmStatus', title: '报警状态', width: 150 },
                     { field: 'vehicleState', title: '车辆状态', width: 150 },
                     { field: 'PositionStatus', title: '定位状态', width: 150 },
                     { field: 'uploadtime', title: '上传时间', width: 150 },
                     { field: 'BeginTime', title: '开通时间', width: 150 },
                     { field: 'EndTime', title: '到期时间', width: 150 },
                     {
                         field: 'Adderss', title: '操作', width: 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', '您的权限已经过期!\n 请重新登录!!');
                     } 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');
posted @ 2013-09-10 11:21  【唐】三三  阅读(4470)  评论(0编辑  收藏  举报