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控表格件实现这种业务需求呢?本篇 ...
随机推荐
- 指定DIV局部刷新的简单实现,很简单,但是网上搜到的大部分都很复杂
脚本部分: <script type="text/javascript"> $(function () { setInterval(function () { $(&q ...
- halcon 模板匹配 -- find_shape_model
find_shape_model(Image : : //搜索图像 ModelID, //模板句柄 AngleStart, // 搜索时的起始角度 AngleExtent, //搜索时的角度范围, ...
- C# Datetime 使用详解
获得当前系统时间: DateTime dt = DateTime.Now; Environment.TickCount可以得到“系统启动到现在”的毫秒值 DateTime now = DateTime ...
- yar 调用rpc方法
<?php class RpcController extends Yaf_Controller_Abstract { //RPC入口 public function indexAction($ ...
- 解决Cannot change version of project facet Dynamic Web M 3.0
解决Cannot change version of project facet Dynamic Web M 3.0 dynamic web module 版本之间的区别: Servlet 3.0 D ...
- 【sqli-labs】 less36 GET- Bypass MYSQL_real_escape_string (GET型绕过MYSQL_real_escape_string的注入)
看一下mysql_real_escape_string()函数 \x00 \x1a 注入的关键还是在于闭合引号,同样使用宽字节注入 http://192.168.136.128/sqli-labs-m ...
- HDU 4405 Aeroplane chess(概率dp,数学期望)
题目 http://kicd.blog.163.com/blog/static/126961911200910168335852/ 根据里面的例子,就可以很简单的写出来了,虽然我现在还是不是很理解为什 ...
- 单行函数、表连接(day02)
回顾: 1.数据库介绍 sql: dql: select dml: insert delete update ddl: create drop alter tcl: commit rollback s ...
- 使用pandas中的raad_html函数爬取TOP500超级计算机表格数据并保存到csv文件和mysql数据库中
参考链接:https://www.makcyun.top/web_scraping_withpython2.html #!/usr/bin/env python # -*- coding: utf-8 ...
- Java 动态实现word导出功能
1.word模板:xx.ftl生成,ftl文件就是word的源代码,类似html一样是拥有标签和样式的代码. 把需要导出的doc文件模板用office版本的word工具打开. 把doc文件另存为xx. ...