DevExpress 自定义图表导出菜单
来源:互联网 发布:mac里什么浏览器最流畅 编辑:程序博客网 时间:2024/05/16 19:22
具体效果如下:
1、前端显示界面源码
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ChartToolBar.ascx.cs" Inherits="Controls_ChartToolBar" %><%@ Register Assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dxe" %><%@ Register assembly="DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxNavBar" tagprefix="dxe" %><%@ Register assembly="DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxMenu" tagprefix="dxm" %><center> <dxm:ASPxMenu SkinID="ChartDemoToolbar" ID="mnuToolbar" runat="server" ClientInstanceName="mnuToolbar" ApplyItemStyleToTemplates="True"> <Items> <dxm:MenuItem Name="mnuPrint" Text="" ToolTip="打印图表"> <Image Url="~/Images/Toolbar/BtnPrint.png" /> </dxm:MenuItem> <dxm:MenuItem Name="mnuSaveToDisk" Text="" ToolTip="导出保存图表" BeginGroup="True"> <Image Url="~/Images/Toolbar/BtnSave.png" /> </dxm:MenuItem> <dxm:MenuItem Name="mnuSaveToWindow" Text="" ToolTip="导出图表到新窗口"> <Image Url="~/Images/Toolbar/BtnSaveWindow.png" /> </dxm:MenuItem> <dxm:MenuItem Name="mnuFormat"><Template> <dxe:ASPxComboBox runat="server" Width="60px" ValueType="System.String" ID="cbFormat" SelectedIndex="0" ClientInstanceName="cbFormat"> <Items> <dxe:ListEditItem Value="pdf" Text="pdf" /> <dxe:ListEditItem Value="xls" Text="xls" /> <dxe:ListEditItem Value="png" Text="png" /> <dxe:ListEditItem Value="jpeg" Text="jpeg" /> <dxe:ListEditItem Value="bmp" Text="bmp" /> <dxe:ListEditItem Value="tiff" Text="tiff" /> <dxe:ListEditItem Value="gif" Text="gif" /> </Items> </dxe:ASPxComboBox> </Template></dxm:MenuItem> <dxm:MenuItem Name="mnuLblAppearance" BeginGroup="True"> <Template><dxe:ASPxLabel ID="lblAppearance" Text="图表外观:" runat="server" /></Template> </dxm:MenuItem> <dxm:MenuItem Name="mnuAppearance"><Template> <dxe:ASPxComboBox runat="server" Width="120px" ValueType="System.String" ID="cbAppearance" ClientInstanceName="cbAppearance"> <ClientSideEvents SelectedIndexChanged="function(s, e) { WebChart.PerformCallback("Appearance"); }" /> </dxe:ASPxComboBox> </Template></dxm:MenuItem> <dxm:MenuItem Name="mnuLblPalette"> <Template><dxe:ASPxLabel ID="lblPalette" Text="颜色:" runat="server"/></Template> </dxm:MenuItem> <dxm:MenuItem Name="mnuPalette"><Template> <dxe:ASPxComboBox runat="server" Width="120px" ValueType="System.String" ID="cbPalette" ClientInstanceName="cbPalette"> <ClientSideEvents SelectedIndexChanged="function(s, e) { WebChart.PerformCallback("Palette"); }" /> </dxe:ASPxComboBox> </Template></dxm:MenuItem> </Items> <ClientSideEvents ItemClick="function(s, e) { if (e.item.name == 'mnuPrint') WebChart.Print(); if (e.item.name == 'mnuSaveToDisk') WebChart.SaveToDisk(cbFormat.GetText()); if (e.item.name == 'mnuSaveToWindow') WebChart.SaveToWindow(cbFormat.GetText());}" /> </dxm:ASPxMenu></center>
2、后台cs代码
using System;using System.Collections.Generic;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using DevExpress.XtraCharts.Web;using DevExpress.Web.ASPxEditors;public partial class Controls_ChartToolBar : System.Web.UI.UserControl{ const string appearanceKey = "appearanceKey"; const string paletteKey = "paletteKey"; public WebChartControl webChartControl; ASPxComboBox cbAppearance; ASPxComboBox cbPalette; protected void Page_Load(object sender, EventArgs e) { } void webChartControl_CustomCallback(object sender, CustomCallbackEventArgs e) { if (webChartControl != null) { switch (e.Parameter) { case "Palette": if (cbPalette != null) { webChartControl.PaletteName = cbPalette.Text; Page.Session[paletteKey] = cbPalette.Text; } break; case "Appearance": if (cbAppearance != null) { webChartControl.AppearanceName = cbAppearance.Text; Page.Session[appearanceKey] = cbAppearance.Text; } if (cbPalette != null) { cbPalette.SelectedIndex = cbPalette.Items.IndexOfText(webChartControl.PaletteName); Page.Session[paletteKey] = cbPalette.Text; } break; } } } void PrepareComboBox(ASPxComboBox comboBox, string[] items, string defaultItem) { comboBox.Items.Clear(); comboBox.Items.AddRange(items); comboBox.SelectedIndex = defaultItem != null ? comboBox.Items.IndexOfText(defaultItem) : 0; } void SetWebChartControl(WebChartControl webChartControl) { if (this.webChartControl != null) this.webChartControl.CustomCallback -= new CustomCallbackEventHandler(webChartControl_CustomCallback); this.webChartControl = webChartControl; if (webChartControl != null) { if (string.IsNullOrEmpty(webChartControl.ClientSideEvents.EndCallback)) webChartControl.ClientSideEvents.EndCallback = "function (s, e) { SetPaletteComboBox(s, e); }"; else { int index = webChartControl.ClientSideEvents.EndCallback.LastIndexOf('}'); webChartControl.ClientSideEvents.EndCallback = webChartControl.ClientSideEvents.EndCallback.Insert(index, "\tSetPaletteComboBox(s, e);\n"); } webChartControl.CustomCallback += new CustomCallbackEventHandler(webChartControl_CustomCallback); string currentAppearanceName = Page.Session[appearanceKey] as string; if (!string.IsNullOrEmpty(currentAppearanceName)) webChartControl.AppearanceName = currentAppearanceName; string currentPaletteName = Page.Session[paletteKey] as string; if (!string.IsNullOrEmpty(currentPaletteName)) webChartControl.PaletteName = currentPaletteName; if (cbAppearance != null) PrepareComboBox(cbAppearance, webChartControl.GetAppearanceNames(), webChartControl.AppearanceName); if (cbPalette != null) PrepareComboBox(cbPalette, webChartControl.GetPaletteNames(), webChartControl.PaletteName); } } protected void Page_Init(object sender, EventArgs e) { Page.ClientScript.RegisterClientScriptBlock(typeof(string), "SetPaletteComboBox", "<script type=\"text/javascript\">\n<!--\nfunction SetPaletteComboBox(s, e) {\n\tfor (var i = 0; i < cbPalette.GetItemCount(); i++) {\n\t\tif (cbPalette.GetItem(i).value == s.GetChart().paletteName) {\n\t\t\tcbPalette.SetSelectedIndex(i);\n\t\t}\n\t}\n}\n// -->\n</script>"); mnuToolbar.AutoSeparators = DevExpress.Web.ASPxMenu.AutoSeparatorMode.None; webChartControl = Page.FindControl("WebChartControl1") as WebChartControl; if (webChartControl != null) { DevExpress.Web.ASPxMenu.MenuItem mnuAppearance = mnuToolbar.Items.FindByName("mnuAppearance"); if (mnuAppearance != null) cbAppearance = mnuAppearance.FindControl("cbAppearance") as ASPxComboBox; DevExpress.Web.ASPxMenu.MenuItem mnuPalette = mnuToolbar.Items.FindByName("mnuPalette"); if (mnuPalette != null) cbPalette = mnuPalette.FindControl("cbPalette") as ASPxComboBox; SetWebChartControl(webChartControl); } }}
- DevExpress 自定义图表导出菜单
- Flash图表FusionCharts如何自定义图表导出菜单或界面
- [WPF][DevExpress]导出ChartControl图表图片
- Highcharts自定义按钮导出图表
- DevExpress自定义Spreadsheetcontrol 单元格右键菜单
- 导出自定义菜单
- DevExpress图表控件ChartControl
- C# Devexpress 中GridControl 自定义汉化右击菜单项
- DevExpress XtraGrid 自定义 Bool型 列 Excel 的导出值
- DevExpress ChartControl控件实现图表
- highcharts在导出时如何自定义图表的表头
- Devexpress 删除菜单项
- DevExpress添加右键菜单
- DevExpress添加右键菜单
- DevExpress GridControl Export 导出
- DevExpress GridControl导出数据
- Devexpress 自定义打印
- Devexpress 自定义DisplayFormat
- 商品类别导航(类别在后台可以添加)
- “Hello World”背后的那些事
- hdu 4328 Cut the cake
- poj 1330 LCA
- oracle时间函数学习
- DevExpress 自定义图表导出菜单
- hdu 4315 Digital root 【多校6】【线段树】
- IE/FireFox/Chrome 取style.backgroundColor 兼容性问题
- POJ 3270 Cow Sorting(置换循环节)
- 学习步骤?(copy过来的)
- iOS开发之多媒体
- Android入门/ImageSwitcher(十四)
- 自旋锁使用的注意点
- Weblogic 12c 运行使用Slf4j日志框架应用解决方案