BPM使用ligerUI实现主从表显示
先看一下效果图:
界面有待美化,嘿嘿,下面说一下实现过程,当然,我的代码可能不对,就比如后台给前端返回JSON对象,应该包括状态和消息和数据,我这里直接给返回了JSON对象,所以,如果有大神,您知道怎么处理的话,请不吝赐教哦!
前端代码:
这里的子表数据我为了方便直接创建了一个JSON对象,当然也可以从数据库读取数据
<%@ Page Title="" Language="C#" MasterPageFile="~/DefaultMaster.master" AutoEventWireup="true" CodeFile="sqlTest.aspx.cs" Inherits="Sheets_sqlTest_sqlTest" %> <%@ Register Assembly="OThinker.H3.WorkSheet" Namespace="OThinker.H3.WorkSheet" TagPrefix="SheetControls" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cphHead" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cphMain" runat="Server">
<link href="ligerUI/lib/ligerUI/skins/Aqua/css/ligerui-all.css" rel="stylesheet" type="text/css" />
<script src="ligerUI/lib/ligerUI/js/core/base.js" type="text/javascript"></script>
<script src="ligerUI/lib/ligerUI/js/plugins/ligerGrid.js" type="text/javascript"></script>
<style>
.l-grid-detailpanel-inner{
height:auto !important;
}
</style>
<script type="text/javascript">
console.log("js从这里开始运行");
var ajaxurl = 'sqlTest.aspx?Action=GETDATA';
$.post(ajaxurl, function (datas) {
console.log("ajax获取成功");
console.log(JSON.parse(datas));
// //调用ligerGrid
var columns = [
{ display: '主键', name: 'id', type: 'int', minWidth: , width: },
{ display: '名称', name: 'name' },
{ display: '编号', name: 'number' },
{ display: '类型', name: 'type' },
{ display: '单位', name: 'unit' },
{ display: '单价', name: 'price' },
{ display: '数量', name: 'quantity' },
{ display: '备注', name: 'note' }
]; console.log(columns);
//$(function () {
$("#maingrid").ligerGrid({
columns: columns,
data: JSON.parse(datas),
//1,标题:配置title和showTitle:true即可
title: '我的表格', showTitle: true,
//2,宽度:ligerGrid会根据列自动计算出表格的宽度,当然也可以指定一个数值或者百分比来设置宽度
width: '100%',
//3,分页:默认是使用分页的,如果不想使用分页,可以配置 usePager :false
//usePager :false,
//4,滚动条:内容有太多的行时会出现滚动体,如果不想显示,可以通过配置isScroll设置是否出现滚动体
isScroll: true,
showTitle: false, width: '90%', /*columnWidth: 120,*/
detail: { onShowDetail: f_showOrder },
onError: function (a, b) {
} });
//});
//子表数据准备
var jsonObj = {};
jsonObj.Rows = [
{ id: , cpu: "I3", disk: "500G", graphicscard: "2G", memory: "4G" },
{ id: , cpu: "I5", disk: "500G", graphicscard: "2G", memory: "4G" },
{ id: , cpu: "I7", disk: "1T", graphicscard: "4G", memory: "8G" },
{ id: , cpu: "I3", disk: "500G", graphicscard: "2G", memory: "4G" },
{ id: , cpu: "I5", disk: "500G", graphicscard: "2G", memory: "4G" },
{ id: , cpu: "I7", disk: "1T", graphicscard: "4G", memory: "8G" },
];
//子表
function f_showOrder(row, detailPanel, callback) {
var grid = document.createElement('div');
$(detailPanel).append(grid);
$(grid).css('margin', ).ligerGrid({
columns: [
{ display: 'CPU', name: 'cpu' },
{ display: '硬盘', name: 'disk' },
{ display: '显卡', name: 'graphicscard'},
{ display: '内存', name: 'memory' }
], isScroll: false, showToggleColBtn: false, width: '90%',
data: f_getOrdersData(row.id), showTitle: false, columnWidth: ,
onAfterShowData: callback, frozen: false
});
}
//子表数据验证
function f_getOrdersData(id) {
var data = { Rows: [] };
for (var i = ; i < jsonObj.Rows.length; i++) {
if (jsonObj.Rows[i].id == id)
data.Rows.push(jsonObj.Rows[i]);
}
return data;
}
}); </script>
<div style="height: 800px;">
<div id="maingrid"></div>
</div>
</asp:Content>
后台代码:
using OThinker.H3.Portal;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Sheets_sqlTest_sqlTest : PortalPage
{
protected void Page_Load(object sender, EventArgs e)
{
DoAction();
}
public void DoAction()
{
string actionCode = Request.QueryString["Action"] ?? "";
if (actionCode.ToUpperInvariant()=="GETDATA")
{
object jsonObj = null;
jsonObj = GetSupplies();
if (jsonObj != null)
{
object n= new JavaScriptSerializer().Serialize(jsonObj);
Response.Write(n);
Response.End();
}
} } private object GetSupplies()
{
DataTable dt = new DataTable(); string strsql = "select * from M_supplies ;";
dt = OThinker.H3.WorkSheet.AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(string.Format(strsql));
List<Dictionary<string, object>> lists = new List<Dictionary<string, object>>(); foreach (DataRow dr in dt.Rows)
{
Dictionary<string, object> list = new Dictionary<string, object>();
list.Add("id", dr["id"].ToString());
list.Add("name", dr["name"].ToString());
list.Add("number", dr["number"].ToString());
list.Add("type", dr["type"].ToString());
list.Add("unit", dr["unit"].ToString());
list.Add("price", dr["price"].ToString());
list.Add("quantity", dr["quantity"].ToString());
list.Add("note", dr["note"].ToString()); lists.Add(list);
} var gridData = new { Rows = lists };
return gridData;
}
}
BPM使用ligerUI实现主从表显示的更多相关文章
- 在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列?
在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列?(效果图如下:): 在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列(效果图) 实现该 ...
- 用嵌套List实现DataGrid的主从表显示
//首先构造嵌套List,也就是一个list在另一个list中充当成员//如:referModels 在res中充当成员var res = totalAffectedMedels.Select(c = ...
- DevExpress gridcontrol gridView主从表折叠/展开显示
在使用报表的时候,有很多需要主从表一起显示,从表不需要另外弹窗显示明细,反而直接显示在主表下方.如图所示: 第一次做这个功能,主从表显示,从表列隐藏,从表单元格点击事件这三个功能点花费了很多时间,在网 ...
- cxGrid主从表删除从表记录的困惑
cxgrid主从表显示方便直观. varADetailDC: TcxGridDataController;AView: TcxCustomGridTableView; with cxgrdbndtbl ...
- EF里单个实体的增查改删以及主从表关联数据的各种增删 改查
本文目录 EF对单个实体的增查改删 增加单个实体 查询单个实体 修改单个实体 删除单个实体 EF里主从表关联数据的各种增删改查 增加(增加从表数据.增加主从表数据) 查询(根据主表找从表数据.根据从表 ...
- 代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
在代码生成工具的各种功能规划中,我们一向以客户的需求作为驱动,因此也会根据需要增加一些特殊的功能或者处理.在实际的开发中,虽然我们一般以具体的表进行具体业务开发,但是有些客户提出有时候视图开发也是很常 ...
- DevExpress主从表 按组分页一组不足一页为一页--以此记录
本文的主要是说明Dev的报表的主从表,主从表的每一组显示在一页,当一组超出一页,第二页只显示第一组的. 一.每上报表设置图 简单设计图如上 二.后台代码 报表页代码 public partial cl ...
- Winform界面中主从表编辑界面的快速处理
在Winform开发中,我们往往除了常规的单表信息录入外,有时候设计到多个主从表的数据显示.编辑等界面,单表的信息一般就是控件和对象实体一一对应,然后调用API保存即可,主从表就需要另外特殊处理,本随 ...
- 在GridControl表格控件中实现多层级主从表数据的展示
在一些应用场景中,我们需要实现多层级的数据表格显示,如常规的二级主从表数据展示,甚至也有多个层级展示的需求,那么我们如何通过DevExpress的GridControl控表格件实现这种业务需求呢?本篇 ...
随机推荐
- ★Java-----记事本编译、运行时注意事项
1.文件名需要与源代码中公共类的名字相同,即class后面的名字: 2.Java中严格区分大小写: 3.记事本编辑好之后保存文件后缀必须是". java": 4.运行cmd,dos ...
- JAVA可能问的几个面试题问题及问题的标准答案
问题一:你希望工作环境是怎样的? 标准答案:我对环境没有苛求,我会努力适应环境的. 注:此问题是在测试你的求职心态,是以自己为中心还是以工作为中心. 问题二:你觉得自己有哪些缺点? 标准答案:说一些对 ...
- dubbo介绍及实战
1. dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封 ...
- php常用字符串和例子
//输出一个或多个字符串 //注:echo 不是一个函数(它是一个语言结构), 因此你不一定要使用小括号来指明参数,单引号,双引号都可以 $a = "admin1"; $b = & ...
- 集合运算(UNION)
表的加法 集合运算:就是满足统一规则的记录进行的加减等四则运算. 通过集合运算可以得到两张表中记录的集合或者公共记录的集合,又或者其中某张表中记录的集合. 集合运算符:用来进行集合的运算符. UNIO ...
- eas之执行sql的方式
客户端: 1. 有返回集合:查询 //查询出DB中所有该字段的值,与其进行比较,若有相同的则报错 String sql="select CFWuliaoCode fr ...
- eas之kdtable格式化
设置表.列.行或单元的格式化字符串 // 设置表table.getStyleAttributes().setNumberFormat(formatString); // 设置列column.getSt ...
- Linux放弃到入门
流星,因为短暂而美丽,划过黑寂的夜空,释放出那一闪而逝的光芒,虽然微弱,但却没有人能无视它的存在.人生如同流星,充满了精彩与传奇,如同一支美丽的传说,究竟能否想流星那样短暂,别人决定不了,上天也决定不 ...
- 从0到1发布一个Vue Collapse组件
需求背景 最近在项目中遇到了一个类似Collapse的交互需求,因此到github上找了一圈关于Vue Collapse的相关轮子,但是多少都有些问题.有的是实现问题,例如vue2-collapse, ...
- mybatis传入两个String类型的参数
1.项目spring +mybatis +oracle 2.报错信息: [DEBUG] -- :: org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debu ...