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控表格件实现这种业务需求呢?本篇 ...
随机推荐
- vsftp服务器搭建
1.FTP的主动模式和被动模式的区别: 最大的区别是数据端口并不总是20, 主动模式和被动模式的优缺点: 主动FTP对FTP服务器的管理和安全很有利,但对客户端的管理不利.因为FTP服务器企图与客户端 ...
- 递归删除List元素
public List<Redenvelope> DeleteList(List<Redenvelope> list) { foreach (var item in list) ...
- MVC 返回404,返回图片,流到数组,apk信息
return HttpNotFound(); byte[] buffer0 = QRCode(); return File(buffer0, @"image/jpeg"); // ...
- 移动端APP UI规范
- javaee utf-8文件的转换
package Zy; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.Fil ...
- 【转载】Intellij IDEA的Hibernate简单应用
转载自: https://www.cnblogs.com/yangyquin/p/5438248.html 1.创建数据库及其表 create database demo; use demo ...
- SSL证书在线申请和取回证书指南
1.客服下单后用户会收到一封邮件,来验证接收证书的邮箱;如图1所示:只有完成此邮箱验证才能正常申请证书; 请注意:为了确保您或您的用户能正常收到WoSign证书管理系统自动发送的邮件,请一定要把系统发 ...
- 防止split没有切割的变量报错
var getSocketUrl = localStorage.getItem("socketUrl"); getSocketUrl = getSocketUrl &&am ...
- eas之kdtable分组
如何指定是否要进行数据分组以及对哪些列进行分组 // 指定KDTable要进行数据分组 table.getGroupManager().setGroup(true); // 指明要对0.1.2三列进行 ...
- swift-导航栏添加自定义返回按钮
//1.添加返回按钮 func addBackBtn(){ let leftBtn:UIBarButtonItem=UIBarButtonItem(title: "返回", sty ...