当你购买了带源码的时候,你可以对源码进行修改以达到自己想要的效果,比较这里讲到的,向viewer控件工具栏添加按钮。

通过源码目录可以看出我们需要修改的有两部分代码

红色方块圈中的部分,【StiWebViewer】这个就是控件代码,【Toolbar】这个是控件按钮

我们这里添加一个按钮(StiShowLogoToolButton)来看看

1、在Toolbar文件夹下添加个类 StiShowLogoToolButton,

这个类的代码其实很简单,你可以参考其他button按钮的代码

  1. using Stimulsoft.Base.Localization;
  2.  
  3. namespace Stimulsoft.Report.Web
  4. {
  5. internal sealed class StiShowLogoToolButton : StiToolButton
  6. {
  7. public StiShowLogoToolButton(StiWebViewer viewer)
  8. : base(viewer, viewer.GetLocalization("A_WebViewer", "Show_HideLogo"), "Show_HideLogo")
  9. {
  10. this.ID = viewer.ClientID + "Show_HideLogo";
  11. this.ShowCaption = true;
  12. this.Enabled = true;
  13. if (viewer.IsAjax)
  14. {
  15. string callback = viewer.Page.ClientScript.GetCallbackEventReference(viewer, "GenerateParameters('" + viewer.ClientID + "','Show_HideLogo')", "CallbackFunction", "null");
  16.  
  17. this.ClickEvent = "if (ToolButton_OnClick(this, '" + viewer.ClientID + "')) " + callback + ";";
  18. //this.ClickEvent = "return false;";
  19. }
  20. }
  21.  
  22. }
  23. }

当然这个按钮也是需要个图片的,在Images里面放个内嵌的图片Show_HideLogo.gif

2、想viewer添加控制属性,也就是是否显示按钮的属性

  1. /// <summary>
  2. /// 獲取或設置一個值用於表示是否顯示報表LOGO按鈕
  3. /// </summary>
  4. [DefaultValue(true)]
  5. [Category("Other")]
  6. [Description("獲取或設置一個值用於表示是否顯示報表LOGO按鈕")]
  7. public bool ShowLogoButton
  8. {
  9. get
  10. {
  11.  
  12. object showLogoButton = this.ViewState["ShowLogoButton"];
  13. return showLogoButton is bool ? (bool)showLogoButton : true;
  14. }
  15. set
  16. {
  17. this.ViewState["ShowLogoButton"] = value;
  18. }
  19. }

3、StiToolBar.cs里开始添加按钮上来

写个方法用来添加按钮

  1. private void AddShowLogoButton()
  2. {
  3. showlogoButton = new StiShowLogoToolButton(viewer);
  4. if (viewer.ShowLogoButton) AddControl(showlogoButton);
  5. }

然后在CreateChildControls()方法里调用添加按钮的方法AddShowLogoButton()

4、至于怎么判断你点击了按钮呢?别急往下看

在StiWebViewer里面找到这个方法 public void RaiseCallbackEvent(string eventArg)

然后进行判断

if (eventArg.StartsWith("Show_HideLogo", StringComparison.InvariantCulture))

这样就可以自己写逻辑进行处理了

效果就是这样了

Stimulsoft.Report.web viewer控件添加按钮的更多相关文章

  1. GridControl控件添加按钮列及在按钮Click事件中得到行数据 zt

    在GridControl中添加按钮列的步骤如下: 1. 把列的ColumnEdit属性设置为RepositoryItemButtonEdit 2. 把TextEditStyle属性设置为HideTex ...

  2. 在网页中编辑报表的报表设计器Stimulsoft Reports Designer.Web报表控件

    Stimulsoft Reports Designer.Web报表控件是一款网页报表设计器.您想在网页中编辑您的报表吗?现在是可能的! Stimulsoft Reports Designer.Web ...

  3. [转]Oracle分页之二:自定义web分页控件的封装

    本文转自:http://www.cnblogs.com/scy251147/archive/2011/04/16/2018326.html 上节中,讲述的就是Oracle存储过程分页的使用方式,但是如 ...

  4. Web用户控件

    用户控件是个什么东西?自定义的反复重用的控件集合 注意:创建好用户控件后,必须添加到其他web页中才能显示出来,不能直接作为一个网页来显示,因此也就不能设置用户控件为“起始页”. 用户控件与ASP.N ...

  5. ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇

    原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇 第三章 为控件添加事件 后篇 前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事件是 ...

  6. C/S架构引用Lodop 如何在C#调用web打印控件Lodop

    lodop是web打印控件,引用安装目录下的ocx文件,可以在c/s架构中使用. 该文件所在路径:C:\Program Files (x86)\MountTaiSoftware\Lodop 有32位和 ...

  7. 基于 WPF 平台的 ActiveReports Viewer控件

    ActiveReports 报表控件致力于为组织和个人提供最出色的报表解决方案,多年来ActiveReports已经提供了 Windows Forms.Web.Silverlight和Flash平台的 ...

  8. C#爬虫(02):Web browser控件CefSharp的使用

    一.CefSharp介绍 CEF 全称是Chromium Embedded Framework(Chromium嵌入式框架),是个基于Google Chromium项目的开源Web browser控件 ...

  9. 【C#】使用IExtenderProvider为控件添加扩展属性,像ToolTip那样

    申明: - 本文适用于WinForm开发 - 文中的“控件”一词是广义上的说法,泛指包括ToolStripItem.MenuItem在内单个界面元素,并不特指继承自Control类的狭义控件 用过To ...

随机推荐

  1. SSIS从理论到实战,再到应用(4)----流程控制之For循环

    原文:SSIS从理论到实战,再到应用(4)----流程控制之For循环 上期回顾: SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器 在SSIS体系中,控制流可能经常会遇到 ...

  2. 沃森Mysql数据库修复工具

    华信Mysql数据库修复程序是由北京华信数据恢复中心独立研发.主要针对Mysql数据库损坏的恢复. 本程序可用于因为各种误操作而导致数据丢失的恢复,以及因为断电.陈列损坏.硬盘坏道等各种原因导致数据库 ...

  3. sscanf()函数的用法

    来自:http://blog.csdn.net/tigerjibo/article/details/6442151 sscanf 名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. ...

  4. Android中适用于ListView、GridView等组件的通用Adapter

    今天随便逛逛CSDN,看到主页上推荐了一篇文章Android 高速开发系列 打造万能的ListView GridView 适配器,刚好这两天写项目自己也封装了相似的CommonAdapter,曾经也在 ...

  5. Asp.net MVC + EF + Spring.Net 项目实践(三)

    这一篇要整合Model层和Repository层,提供一个统一的操作entity的接口层,代码下载地址(博客园上传不了10M以上的文件,所以用了百度):http://pan.baidu.com/s/1 ...

  6. ios MKNetworkKit 的使用

    常用框架比如:AFNetworking,ASIHttpRequest,SDWebImage,MKNetWorKit等. iOS5已出来这么久了,而ASIHttpRequest的作者已经申明不更新了,在 ...

  7. WinForm播放视频

    原文:WinForm播放视频 1背景 这几天一老友要求我做个小软件,在WinForm播放视频.印象中微软有个WM控件直接可以使用,晚上研究下 2实现方式 2.1微软草根 最简单的方式,是直接使用微软的 ...

  8. ios 设备基本信息检测

    开发ios确实会让人身心愉悦(相对于deskop,android),ios app更多的让人集中注意力到它本身的体验,性能.这非常好,我非常喜欢相对完美的事物. 最近遇到一些乱七八糟的需求.需要获取一 ...

  9. Arraylist、Linkedlist遍历方式性能分析

    本文主要介绍ArrayList和LinkedList这两种list的常用循环遍历方式,各种方式的性能分析.熟悉java的知道,常用的list的遍历方式有以下几种: 1.for-each List< ...

  10. c语言mysql api

    原文:c语言mysql api 1.mysql_affected_rows()            //返回上次UPDATE.DELETE或INSERT查询更改/删除/插入的行数. 2.mysql_ ...