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

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

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

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

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

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

using Stimulsoft.Base.Localization;

namespace Stimulsoft.Report.Web
{
internal sealed class StiShowLogoToolButton : StiToolButton
{
public StiShowLogoToolButton(StiWebViewer viewer)
: base(viewer, viewer.GetLocalization("A_WebViewer", "Show_HideLogo"), "Show_HideLogo")
{
this.ID = viewer.ClientID + "Show_HideLogo";
this.ShowCaption = true;
this.Enabled = true;
if (viewer.IsAjax)
{
string callback = viewer.Page.ClientScript.GetCallbackEventReference(viewer, "GenerateParameters('" + viewer.ClientID + "','Show_HideLogo')", "CallbackFunction", "null"); this.ClickEvent = "if (ToolButton_OnClick(this, '" + viewer.ClientID + "')) " + callback + ";";
//this.ClickEvent = "return false;";
}
} }
}

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

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

 /// <summary>
/// 獲取或設置一個值用於表示是否顯示報表LOGO按鈕
/// </summary>
[DefaultValue(true)]
[Category("Other")]
[Description("獲取或設置一個值用於表示是否顯示報表LOGO按鈕")]
public bool ShowLogoButton
{
get
{ object showLogoButton = this.ViewState["ShowLogoButton"];
return showLogoButton is bool ? (bool)showLogoButton : true;
}
set
{
this.ViewState["ShowLogoButton"] = value;
}
}

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

写个方法用来添加按钮

  private void AddShowLogoButton()
{
showlogoButton = new StiShowLogoToolButton(viewer);
if (viewer.ShowLogoButton) AddControl(showlogoButton);
}

然后在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. C++ Primer 学习笔记_56_ 类和数据抽象 --消息处理演示示例

    拷贝控制 --消息处理演示样例 说明: 有些类为了做一些工作须要对复制进行控制. 为了给出这种样例,我们将概略定义两个类,这两个类可用于邮件处理应用程序.Message类和 Folder类分别表示电子 ...

  2. 后台自动启动appium

    首先说明,本人用的exe方式安装的appium. 新建一个.vbs文件,写入以下脚本,记得把D盘换成你自己的盘符. 1.后面taskkill好像没有实际作用..加就加了吧. Set ws = Crea ...

  3. SSAS系列——【03】多维数据(多维数据集对象)

    原文:SSAS系列--[03]多维数据(多维数据集对象) 1.什么是Cube? 简单 Cube 对象由基本信息.维度和度量值组组成. 基本信息包括多维数据集的名称.多维数据集的默认度量值.数据源和存储 ...

  4. IOS中TableView的使用(1) -创建一个简单的tableView

    创建一个简单的tableView: #import <UIKit/UIKit.h> /*tableView 一定要遵守这两个协议: UITableViewDataSource,UITabl ...

  5. Linux httpd 跳转简单方法一

    直接在httpd.conf中添加以下代码即可: NameVirtualHost *:80 <VirtualHost *:80> ServerName localhost ##访问域名 Re ...

  6. 设置CentOS开机连接网络 Centos 开机启动网卡的设置方法

    我们开机网卡不能启动所以只能使用 ifup eth0 (eth0指的网卡) 来启动了,但是每一次都这样感觉不方便希望开机自动启动网卡 后来百度搜索了一下发现可以通过修改网卡( ifcfg-eth0)参 ...

  7. 根据Unix哲学来编写你的HTML5 Websocket服务器来实现全双工通信

    websocketd代表WebSocket的守护进程 websocketd处理的是浏览器和服务器之间的WebSocket连接,它会启动你所指定的服务器端应用来对WebSockets进行处理,然后在浏览 ...

  8. 客户端javascript

    <script> function moveon(){ var answer=confirm("hello,good morning!");//通过弹出对话框询问用户 ...

  9. js+css3动态时钟-------Day66

    昨天,有一天招,宽带到底没装上.相当恼火,不过包了一天租新房,有很多想法下来,其中,率先实现了--动态时钟(它已上载的资源,一些粗略的全貌.汗...) 这里记录.这个看似简单的功能,以达到良好的,我在 ...

  10. 【UVA】10285-Longest Run on a Snowboard(动态规划)

    这是一个简单的问题.你并不需要打印路径. 状态方程dp[i][j] = max(dp[i-1][j],dp[i][j-1],dp[i+1][j],dp[i][j+1]); 14003395 10285 ...