AspxPivotGrid和WebChartControl数据联动处理日志
AspxPivotGrid具有很好的表格样式体验,WebChartControl也是个很内容丰富的做图控件,我希望实现的功能是这样的,
处理题库统计分析图表,用户点AspxPivotGrid绑定知识点的行数据(DataArea),显示出该知识点的试题数量分布情况。
程序界面如下:

AspxPivotGrid没有对应的Server端Click事件处理DataArea区域的动作,因此我的做法是用AspxPivotGrid的ClientSideEvent处理,
我选用的是<ClientSideEvents CellClick="function(s, e) { pnlChart.PerformCallback(e.RowValue);}" />用e.RowValue传递知识点的参
数到后台Server端,在ASPxCallbackPanel的PerformCallback事件里处理图表动态显示。
特别提醒:用ClientEvent事件触发PerformCallback,后台处理WebChartControl图表,一定要把WebChartControl控件放在ASPxCallbackPanel
里,用ASPxCallbackPanel的PerformCallback去传参数到后台,然后才能在前台显示数据,否则,弄半天图表控件就是不显示图,我折腾了一天这个问题,
希望看官注意,别说哥没提醒你哈!
点上图红圈的DataArea格以后,运行结果如下:

贴代码如下:
aspx文件:
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage/NormalPage.master" AutoEventWireup="false" CodeFile="ThemeSummaryView.aspx.cs" Inherits="Base_ThemeSummaryView" %>
<%@ Register assembly="DevExpress.Web.ASPxPivotGrid.v10.2" namespace="DevExpress.Web.ASPxPivotGrid" tagprefix="dx" %>
<%@ Register assembly="DevExpress.Web.ASPxEditors.v10.2" namespace="DevExpress.Web.ASPxEditors" tagprefix="dx" %>
<%@ Register assembly="DevExpress.XtraCharts.v10.2" namespace="DevExpress.XtraCharts" tagprefix="dxc" %>
<%@ Register assembly="DevExpress.XtraCharts.v10.2.Web" namespace="DevExpress.XtraCharts.Web" tagprefix="dxc" %>
<%@ Register assembly="DevExpress.Web.v10.2" Namespace="DevExpress.Web.ASPxCallbackPanel" TagPrefix="dx" %>
<%@ Register assembly="DevExpress.Web.v10.2" Namespace="DevExpress.Web.ASPxPanel" TagPrefix="dx" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">
<table width="100%" cellpadding=0 cellspacing=0 >
<tr>
<td>
<dx:ASPxPivotGrid ID="grvThemeBase" runat="server" Width="1200px"
DataSourceID="dsoExamBase" ClientInstanceName="pivotThemeBase" ClientIDMode="AutoID" >
<Fields>
<dx:PivotGridField Area="RowArea" FieldName="CatalogName" Caption="考试科目" ID="rowCatalogName" AreaIndex="0" />
<dx:PivotGridField Area="RowArea" FieldName="PointItem" Caption="考试知识点" ID="rowPointName" AreaIndex="1" />
<dx:PivotGridField Area="ColumnArea" FieldName="GradeName" Caption="难度" ID="rowGradeName" AreaIndex="0" />
<dx:PivotGridField Area="ColumnArea" FieldName="StyleName" Caption="题型" ID="rowStyleName" AreaIndex="1" />
<dx:PivotGridField Area="DataArea" Caption="难度" SummaryType="Count" FieldName="GradeName" ID="datGradeName" AreaIndex="0" />
</Fields>
<OptionsPager RowsPerPage=10 />
<OptionsView ShowHorizontalScrollBar="True" ShowRowHeaders="False" ShowRowTotals="False" ShowColumnTotals="False" ShowColumnHeaders="False" ShowDataHeaders="False" DataHeadersDisplayMode="Popup" ShowFilterHeaders="False"/>
<OptionsChartDataSource FieldValuesProvideMode="DisplayText" />
<ClientSideEvents CellClick="function(s, e) { pnlChart.PerformCallback(e.RowValue);}" />
</dx:ASPxPivotGrid>
</td>
</tr>
<tr>
<td>
<dx:ASPxCallbackPanel ID="pnlChartPanel" runat="server" Width="200px" OnCallback="pnlChartPanel_Callback" ClientInstanceName="pnlChart">
<PanelCollection>
<dx:PanelContent ID="PanelContent1" runat="server" SupportsDisabledAttribute="True">
<dxc:WebChartControl ID="WebChartTheme" runat="server"
Width="850px" Height="300px"
OnCustomDrawSeriesPoint="WebChartTheme_CustomDrawSeriesPoint"
ClientIDMode="AutoID" IndicatorsPaletteName="Default"
DataSourceID="dsoExamTheme">
</dxc:WebChartControl>
</dx:PanelContent>
</PanelCollection>
</dx:ASPxCallbackPanel>
</td>
</tr>
</table>
<asp:ObjectDataSource ID="dsoExamBase" runat="server" SelectMethod="GetBaseThemeList" TypeName="OLExamLibrary.OLExamBaseTheme" >
</asp:ObjectDataSource>
<asp:ObjectDataSource ID="dsoExamTheme" runat="server" SelectMethod="GetThemeStatistic" TypeName="OLExamLibrary.OLExamBaseTheme" >
</asp:ObjectDataSource>
</asp:Content>
cs文件:
using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using OLExamLibrary;
using DevExpress.XtraCharts;
using DevExpress.XtraCharts.Web;
public partial class Base_ThemeSummaryView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void pnlChartPanel_Callback(object sender, DevExpress.Web.ASPxClasses.CallbackEventArgsBase e)
{
string strPointPara= e.Parameter;
string []strItem = strPointPara.Split('-');
OLExamBaseTheme objTheme = new OLExamBaseTheme();
DataTable dtbTheme = objTheme.GetThemeStatistic(strItem[0]);
//绘图
DrawGraphic(dtbTheme);
}
/// <summary>
/// 根据传进的数据集合绘图
/// </summary>
/// <param name="dtbPointTheme"></param>
private void DrawGraphic(DataTable dtbPointTheme)
{
WebChartTheme.Series.Clear();
Series sesPoint = new Series("数量", ViewType.Bar);
((SideBySideBarSeriesView)sesPoint.View).ColorEach = true;
WebChartTheme.Series.Add(sesPoint);
sesPoint.ArgumentScaleType = ScaleType.Qualitative;
sesPoint.ValueScaleType = ScaleType.Numerical;
for (int i = 0; i < dtbPointTheme.Rows.Count; i++)
{
sesPoint.Points.Add(new SeriesPoint(dtbPointTheme.Rows[i]["StyleName"].ToString(), dtbPointTheme.Rows[i]["ThemeCount"]));
}
sesPoint.SeriesPointsSorting = SortingMode.Ascending;
((XYDiagram)WebChartTheme.Diagram).AxisX.Label.Angle = -30; //坐标值倾斜30度
((XYDiagram)WebChartTheme.Diagram).AxisX.Label.Antialiasing = true; //横坐标坐标值倾斜显示
}
protected void WebChartTheme_CustomDrawSeriesPoint(object sender, CustomDrawSeriesPointEventArgs e)
{
}
}
AspxPivotGrid和WebChartControl数据联动处理日志的更多相关文章
- BPM配置故事之案例14-数据字典与数据联动
小明遇到了点麻烦,他昨天又收到了行政主管发来的邮件,要求把出差申请单改由H3 BPM进行,表单如下 行政主管的出差申请表 小明对表单进行了调整,设计出了一份适合在系统中使用的表单,但在"出差 ...
- pentaho cde数据联动,下拉框,文本框,图形
先看一下效果: 开源bi工具pentaho数据联动,和传统意义上的更改数据不同,pentaho cde 需要一个监听来动态传值. 说一下需要注意的几个地方吧 1.参数是不能在两个图表中直接传递的,必须 ...
- 批量迁移Oracle数据文件,日志文件及控制文件
有些时候需要将Oracle的多个数据文件以及日志文件重定位或者迁移到新的分区或新的位置,比如磁盘空间不足,或因为特殊需求.对于这种情形可以采取批量迁移的方式将多个数据文件或者日志文件实现一次性迁移.当 ...
- rabbitmq更换数据文件和日志文件的存放位置
原来的默认位置是/var下 需要将这些文件更换位置 1.先创建数据文件和日志文件存放位置的目录并给权限 mkdir -p /usr/local/rabbitmq/mnesia mkdir -p /us ...
- easyui datagrid行编辑中数据联动
easyui的datagrid中行内编辑使用数据联动.即:当编辑产品编号时,该行的产品名称自动根据产品编号显示出来. 在编辑中获取当前行的索引 function getRowIndex(target) ...
- ORACLE体系结构一 (物理结构)- 数据文件、日志文件、控制文件和参数文件
一.物理结构Oracle物理结构包含了数据文件.日志文件.控制文件和参数文件 1.数据文件每一个ORACLE数据库有一个或多个物理的数据文件(data file).一个数据库的数据文件包含全部数据库数 ...
- avalon2学习教程11数据联动
在许多表单应用,我们经常遇到点击一个复选框(或下拉框)会引发旁边的复选框(或下拉框)发生改变,这种联动效果用avalon来做是非常简单的.因为avalon拥有经典MVVM框架的一大利器,双向绑定!绝大 ...
- AspxGridView ComboBoxComlum列数据联动
第1步: 页面放置AspxGridView控件, 设置列ComboBox1, ComboBox2列, 拟通过ComboBox1列更新联动ComboBox2列. 两个数据列均为"ComboBo ...
- 数据文件 和日志文件 收缩 Sql Server
A. 将数据文件收缩到指定的目标大小 以下示例将 UserDB 用户数据库中名为 DataFile1 的数据文件的大小收缩到 7 MB. 复制 USE UserDB; GO DBCC SHRINKFI ...
随机推荐
- mysql必知必会(三、使用mysql)
一.连接mysql数据库 mysql -u 用户名 -p回车输入密码 二.显示所有的数据库 show databases; 三.使用数据库 use 数据库名; 四.显示所有的表 show tables ...
- SQL Server中的database checkpoint
基于性能方面的考虑, 数据库引擎会在内存(buffer cache)中执行数据库数据页(pages)的修改, 不会再每次做完修改之后都把修改了的page写回到磁盘上. 更准确的说, 数据库引擎定期在每 ...
- Search for a Range leetcode java
题目: Given a sorted array of integers, find the starting and ending position of a given target value. ...
- OkHttp 官方Wiki之【使用案例】
原文位置:https://github.com/square/okhttp/wiki/Recipes Recipes 食谱/知识点清单 We've written some recipes that ...
- 巧妙使用div+css模拟表格对角线
首先声明: 这只是探讨一种CSS模拟表格对角线的用法,实际在工作中可能觉得这样做有点小题大作,这不是本主题讨论的重点.如果对此深以为然的朋友,请一笑过之... 有时在插入文档时,要用到表格对角线,常见 ...
- tp 生成静态页
$this->fetch()返回的是html 可以直接写入到HTML文件内生成静态页
- Android -- uses-sdk:minSdkVersion 10 cannot be smaller than version L declared in library com.android.support:appcompat-v7:21.0.0-rc1
这是一个报错,是我在Android Studio上添加完Support-v4和v7包之后爆出的错误,百度了好久也没有百度到.当时我的项目有minSdkVersion 19. 设置版本最小为L的时候也会 ...
- Windows10下安装pytorch并导入pycharm
1.安装Anaconda 下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 安装Anaconda3,最新版本的就可以了,我安装的是5. ...
- linux系统用户下的crontab任务不执行问题处理
需求:需要每一天对数据库做一个备份,oracle数据库,linux系统. 备份命令采用最简单的导出\导入. 首先确认服务器是否开启任务计划服务,只有root用户才能对crond服务进行开启和关闭 [r ...
- 多mysql实例下开发需要注意主从同步延迟
今天晚上服务器上线测试,遇到了一个问题! 往数据库写了一条数据之后,再读取该记录,居然读不出来,报空指针.十分费解,喊来开发组长定位问题.他的解释是:写操作用的是主库,而读操作用的是从库.在写库写完之 ...