zoukankan      html  css  js  c++  java
  • BPM使用ligerUI实现主从表显示

    先看一下效果图:

    界面有待美化,嘿嘿,下面说一下实现过程,当然,我的代码可能不对,就比如后台给前端返回JSON对象,应该包括状态和消息和数据,我这里直接给返回了JSON对象,所以,如果有大神,您知道怎么处理的话,请不吝赐教哦!

    前端代码:

    这里的子表数据我为了方便直接创建了一个JSON对象,当然也可以从数据库读取数据

     1 <%@ Page Title="" Language="C#" MasterPageFile="~/DefaultMaster.master" AutoEventWireup="true" CodeFile="sqlTest.aspx.cs" Inherits="Sheets_sqlTest_sqlTest" %>
     2 
     3 <%@ Register Assembly="OThinker.H3.WorkSheet" Namespace="OThinker.H3.WorkSheet" TagPrefix="SheetControls" %>
     4 <asp:Content ID="Content1" ContentPlaceHolderID="cphHead" runat="Server">
     5 </asp:Content>
     6 <asp:Content ID="Content2" ContentPlaceHolderID="cphMain" runat="Server">
     7     <link href="ligerUI/lib/ligerUI/skins/Aqua/css/ligerui-all.css" rel="stylesheet" type="text/css" />
     8     <script src="ligerUI/lib/ligerUI/js/core/base.js" type="text/javascript"></script>
     9     <script src="ligerUI/lib/ligerUI/js/plugins/ligerGrid.js" type="text/javascript"></script>
    10     <style>
    11         .l-grid-detailpanel-inner{
    12             height:auto !important;
    13         }
    14     </style>
    15     <script type="text/javascript">
    16         console.log("js从这里开始运行");
    20         var ajaxurl = 'sqlTest.aspx?Action=GETDATA';
    21         $.post(ajaxurl, function (datas) {
    22             console.log("ajax获取成功");
    23             console.log(JSON.parse(datas));
    24             //        //调用ligerGrid
    25             var columns = [
    26                 { display: '主键', name: 'id', type: 'int', minWidth: 40,  100 },
    27                 { display: '名称', name: 'name' },
    28                 { display: '编号', name: 'number' },
    29                 { display: '类型', name: 'type' },
    30                 { display: '单位', name: 'unit' },
    31                 { display: '单价', name: 'price' },
    32                 { display: '数量', name: 'quantity' },
    33                 { display: '备注', name: 'note' }
    34             ];
    35 
    36             console.log(columns);
    37             //$(function () {
    38                 $("#maingrid").ligerGrid({
    39                     columns: columns,
    40                     data: JSON.parse(datas),
    41                     //1,标题:配置title和showTitle:true即可 
    42                     title: '我的表格', showTitle: true,
    43                     //2,宽度:ligerGrid会根据列自动计算出表格的宽度,当然也可以指定一个数值或者百分比来设置宽度
    44                      '100%',
    45                     //3,分页:默认是使用分页的,如果不想使用分页,可以配置 usePager :false
    46                     //usePager :false,
    47                     //4,滚动条:内容有太多的行时会出现滚动体,如果不想显示,可以通过配置isScroll设置是否出现滚动体
    48                     isScroll: true,
    49                     showTitle: false,  '90%', /*columnWidth: 120,*/
    50                     detail: { onShowDetail: f_showOrder },
    51                     onError: function (a, b) {
    52                     }
    53 
    54                 });
    55             //});
    56             //子表数据准备
    57             var jsonObj = {};
    58             jsonObj.Rows = [
    59                 { id: 1, cpu: "I3", disk: "500G", graphicscard: "2G", memory: "4G" },
    60                 { id: 2, cpu: "I5", disk: "500G", graphicscard: "2G", memory: "4G" },
    61                 { id: 3, cpu: "I7", disk: "1T", graphicscard: "4G", memory: "8G" },
    62                 { id: 4, cpu: "I3", disk: "500G", graphicscard: "2G", memory: "4G" },
    63                 { id: 5, cpu: "I5", disk: "500G", graphicscard: "2G", memory: "4G" },
    64                 { id: 6, cpu: "I7", disk: "1T", graphicscard: "4G", memory: "8G" },
    65             ];
    66             //子表
    67             function f_showOrder(row, detailPanel, callback) {
    68                 var grid = document.createElement('div');
    69                 $(detailPanel).append(grid);
    70                 $(grid).css('margin', 10).ligerGrid({
    71                     columns: [
    72                                 { display: 'CPU', name: 'cpu' },
    73                                 { display: '硬盘', name: 'disk' },
    74                                 { display: '显卡', name: 'graphicscard'},
    75                                 { display: '内存', name: 'memory' }
    76                     ], isScroll: false, showToggleColBtn: false,  '90%',
    77                     data: f_getOrdersData(row.id), showTitle: false, columnWidth: 100,
    78                      onAfterShowData: callback, frozen: false
    79                 });
    80             }
    81             //子表数据验证
    82             function f_getOrdersData(id) {
    83                 var data = { Rows: [] };
    84                 for (var i = 0; i < jsonObj.Rows.length; i++) {
    85                     if (jsonObj.Rows[i].id == id)
    86                         data.Rows.push(jsonObj.Rows[i]);
    87                 }
    88                 return data;
    89             }
    90         });
    91 
    92     </script>
    93     <div style="height: 800px;">
    94         <div id="maingrid"></div>
    95     </div>
    96 </asp:Content>

    后台代码:

     1 using OThinker.H3.Portal;
     2 using System;
     3 using System.Collections;
     4 using System.Collections.Generic;
     5 using System.Data;
     6 using System.Linq;
     7 using System.Web;
     8 using System.Web.Script.Serialization;
     9 using System.Web.UI;
    10 using System.Web.UI.WebControls;
    11 public partial class Sheets_sqlTest_sqlTest : PortalPage
    12 {
    13     protected void Page_Load(object sender, EventArgs e)
    14     {
    15         DoAction();
    16     }
    17     public void DoAction()
    18     {
    19         string actionCode = Request.QueryString["Action"] ?? "";
    20         if (actionCode.ToUpperInvariant()=="GETDATA")
    21         {
    22             object jsonObj = null;
    23             jsonObj = GetSupplies();
    24             if (jsonObj != null)
    25             {
    26                 object n= new JavaScriptSerializer().Serialize(jsonObj);
    27                 Response.Write(n);
    28                 Response.End();
    29             }
    30         }
    31         
    32     }
    33 
    34     private object GetSupplies()
    35     {
    36         DataTable dt = new DataTable();
    37 
    38         string strsql = "select * from M_supplies ;";
    39         dt = OThinker.H3.WorkSheet.AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(string.Format(strsql));
    42         List<Dictionary<string, object>> lists = new List<Dictionary<string, object>>();
    43 
    44         foreach (DataRow dr in dt.Rows)
    45         {
    46             Dictionary<string, object> list = new Dictionary<string, object>();
    47             list.Add("id", dr["id"].ToString());
    48             list.Add("name", dr["name"].ToString());
    49             list.Add("number", dr["number"].ToString());
    50             list.Add("type", dr["type"].ToString());
    51             list.Add("unit", dr["unit"].ToString());
    52             list.Add("price", dr["price"].ToString());
    53             list.Add("quantity", dr["quantity"].ToString());
    54             list.Add("note", dr["note"].ToString());
    55 
    56             lists.Add(list);
    57         }
    58 
    59         var gridData = new { Rows = lists };
    60         return gridData;
    79     }
    80 }
  • 相关阅读:
    [转载]从零开始学习OpenGL ES之一 – 基本概念
    ios中陀螺仪CoreMotion的使用
    如何在IOS中使用3D UI – CALayer的透视投影
    cocos3d加载3Dmax模型到ios中
    cocos2d 坐标系统参考
    PAT 1029 Median
    PAT 1028 List Sorting
    Linux中的进程调度(二)
    LaTeX学习(一)
    搬家
  • 原文地址:https://www.cnblogs.com/jellydong/p/6932044.html
Copyright © 2011-2022 走看看