MVC引用asp.net报表(测试小例子)
public class Default1Controller : Controller
{
//
// GET: /Default1/ public ActionResult Index()
{
return View();
} public JsonResult ReportFileName()
{
DirectoryInfo d = new DirectoryInfo(Server.MapPath("~/") + "Report/");
FileSystemInfo[] fsinfos = d.GetFileSystemInfos();
List<string> fileName = fsinfos.Where(p => p.Name.IndexOf(".rdlc", StringComparison.Ordinal) == -).Select(fsinfo => fsinfo.Name.Replace(".rdl", "")).ToList();
return Json(new { Result = fileName });
} public JsonResult ExistsFile(string keyId)
{
string path = Server.MapPath("~/") + "Report/" + keyId + ".rdl";
return this.Json(new { ResultBool = System.IO.File.Exists(path) });
}
}
MVC后端
@{
ViewBag.Title = "Index";
}
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<span>站点:<input type="text" id="siteid"></span>
<select id="SelReport"></select>
<input type="button" value="报表" onclick="getReport()" />
<br />
<iframe id="IframeUrl" name="IframeUrl" style="width: 100%; height: 1200px;"></iframe>
<script type="text/javascript">
function getReport() {
var sel = $("#SelReport").val();
var site = $("#siteid").val();
$.ajax({
url: "/Default1/ExistsFile",
data: { "keyId": sel },
type: "post",
dataType: "json",
success: function (data) {
if (data.ResultBool) {
$("#IframeUrl").attr("src", "../WebForm1.aspx?KeyId=" + sel + "&site=" + site);
} else
alert(sel + "报表不存在!");
}
});
}
$(document).ready(function () {
$.ajax(
{
url: '/Default1/ReportFileName',
data: '',
type: 'post',
dataType: 'json',
success: function (data) {
if (data != null) {
var option;
$.each(data.Result, function (i, v) {
option += "<option>" + v + "</option>";
});
$("#SelReport").html(option);
}
}
});
});
</script>
MVC前端
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindReport(Request["KeyId"]);
}
} private void BindReport(string keyId)
{
string sql = string.Empty;
string site = Request["site"];
switch (keyId)
{
case "无标题":
sql = " select * from sysuser";
if (site.Length > )
{
sql += " where defsite like '" + site.Trim() + "%'";
}
break;
case "有标题":
sql = " select * from facility";
if (site.Length > )
{
sql += " where siteid like '" + site.Trim() + "%'";
}
break;
case "报表模板":
sql = "SELECT USERID AS SEQ,PERSONID AS KSSJ,DEFSITE AS JSSJ FROM SYSUSER";
if (site.Length > )
{
sql += " where siteid like '" + site.Trim() + "%'";
}
break;
default:
break;
} DataTable dt = new DataTable();
ReportViewer1.ProcessingMode = ProcessingMode.Local;
ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/") + @"Report/" + keyId + ".rdl"; //可以通过SQL语句传参形式
ReportViewer1.LocalReport.EnableExternalImages = true;
dt = QueryTable(sql);
ReportDataSource rds = new ReportDataSource("DataSet1", dt); //DataSetl报表数据集名称
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();
//ClientScript.RegisterClientScriptBlock(ClientScript.GetType(), "MyScript", "<script>Myfun();</script>");
//Response.Write("<script type='text/javascript'>setTimeout('Myfun()','1000');function Myfun(){ $('#ReportViewer1_ctl05_ctl04_ctl00_Menu>div>a:eq(2)').click();}</script>");
//string js =
// "<script src=\"Scripts/jquery-1.8.2.min.js\"></script><script type='text/javascript'> " +
// "var t1 = window.setTimeout(Myfun, 100); " +
// "function Myfun() { " +
// "try { " +
// "if ($('#ReportViewer1_ctl05_ctl04_ctl00_Menu>div>a:eq(2)').length > 0) " +
// "{ console.log('test');" +
// "$('#ReportViewer1_ctl05_ctl04_ctl00_Menu>div>a:eq(2)').click();" +
// " window.clearTimeout(t1);} " +
// "} " +
// "catch (err) " +
// "{}" +
// "}</script>";
//Response.Write(js);
} /// <summary>
/// 执行查询语句,返回DataTable
/// </summary>
/// <param name="sqlString">查询语句</param>
/// <returns>DataTable</returns>
public static DataTable QueryTable(string sqlString)
{ using (var connection = new OracleConnection("DATA SOURCE=192.168.1.61:5050/Xinsida;USER ID=BKCYUN;PASSWORD=bkc123456;"))
{
var dt = new DataTable();
try
{
connection.Open();
var command = new OracleDataAdapter(sqlString, connection);
command.Fill(dt);
return dt;
}
catch (Exception e)
{
throw e;
}
finally
{
if (connection.State == ConnectionState.Open)
{
connection.Close();
}
}
}
}
protected override void Render(HtmlTextWriter writer)
{
using (StringWriter sw = new StringWriter())
{
HtmlTextWriter tmpWriter = new HtmlTextWriter(sw);
base.Render(tmpWriter);
string val = sw.ToString();
val = val.Replace(@"!= 'javascript:\'\''", @"!= 'javascript:\'\'' && false");
writer.Write(val);
}
}
}
WebForm后端
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="ReportBuilderTest1.WebForm1" %> <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<script src="Scripts/jquery-1.8.2.min.js"></script>
<script src="Scripts/jquery-ui-1.8.24.js"></script>
<!DOCTYPE html>
<html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style>
body {
margin: ;
padding: ;
}
</style>
<%-- <script type="text/javascript">
//function Myfun() {
// //console.log("test");
// ////$("#ReportViewer1_ctl05_ctl04_ctl00_Menu>div").setAttribute('style', 'border: 1px solid transparent, background-color: transparent, cursor: default');
// ////$("#ReportViewer1_ctl05_ctl04_ctl00_Button").click(); // //$("#ReportViewer1_ctl05_ctl04_ctl00_Menu").removeAttr("style");
// //$("#ReportViewer1_ctl05_ctl04_ctl00_Menu>div>a").eq(2).click();
// return true;
//}
</script>--%>
</head>
<body>
<form id="form1" runat="server">
<table align="center" border="" cellpadding="" cellspacing="">
<tr>
<td>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Height="100%" Width="98%" Font-Names="Verdana" Font-Size="8pt" SizeToReportContent="true">
</rsweb:ReportViewer>
</td>
</tr>
</table>
</form>
</body>
</html>
WebForm前端
还有一个文件夹Report下面有.rdl报表。这里就不写了。
MVC引用asp.net报表(测试小例子)的更多相关文章
- asp.net 文件操作小例子(创建文件夹,读,写,删)
静态生成要在虚拟目录下创建文件夹 来保存生成的页面 那么就要对文件进行操作 一.创建文件夹 using System.IO; string name = "aa"; strin ...
- java连接mysql的一个小例子
想要用java 连接数据库,需要在classpath中加上jdbc的jar包路径 在eclipse中,Project的properties里面的java build path里面添加引用 连接成功的一 ...
- Spring.Net在ASP.NET Mvc里使用的一个小例子
就贴个小例子,就不注意格式了. 1.下载dll NuGet的下载地址:http://docs.nuget.org/docs/start-here/installing-nuget 在vs的NuGet里 ...
- ASP.NET Cookie对象到底是毛啊?(简单小例子)
记得刚接触asp.net的时候,就被几个概念搞的头痛不已,比如Request,Response,Session和Cookie.然后还各种在搜索引擎搜,各种问同事的,但是结果就是自己还是很懵的节奏. 那 ...
- 在ASP.NET MVC 中使用ActiveReports报表控件
随着MVC模式的广泛运用,对Web应用系统的开发带来了巨大的影响,我们好像又回到了原来的ASP时代,视乎这是一种后退而不是一种进步,不过MVC模式给我们带来的影响不仅限于我们所看到的这一点..MVC看 ...
- lucene.net 3.0.3、结合盘古分词进行搜索的小例子(转)
lucene.net 3.0.3.结合盘古分词进行搜索的小例子(分页功能) 添加:2013-12-25 更新:2013-12-26 新增分页功能. 更新:2013-12-27 新增按分类查询功能, ...
- 七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理
第三天我们将学习Asp.Net中数据处理功能,了解数据访问层,EF,以及EF中常用的代码实现方式,创建数据访问层和数据入口,处理Post数据,以及数据验证等功能. 系列文章 七天学会ASP.NET M ...
- 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递
通过第一天的学习之后,我们相信您已经对MVC有一些基本了解. 本节所讲的内容是在上节的基础之上,因此需要确保您是否掌握了上一节的内容.本章的目标是在今天学习结束时利用最佳实践解决方案创建一个小型的MV ...
- 返璞归真 asp.net mvc (8) - asp.net mvc 3.0 新特性之 Model
原文:返璞归真 asp.net mvc (8) - asp.net mvc 3.0 新特性之 Model [索引页][源码下载] 返璞归真 asp.net mvc (8) - asp.net mvc ...
随机推荐
- (十)自动化测试pom完整文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- 让人又爱又恨的Lombok,到底该不该用
1 简介 Lombok,印尼的一个岛屿,龙目岛.但在Java的世界里,它是一个方便的类库,能提供很多便利,因此得到许多人的青睐.但也有不少反对声音.这是为什么呢? 之前去龙目岛拍的日落. 2 Lomb ...
- vim改变字体和查看映射的(mapping)命令
临时修改.通过gvim Command MODE,输入如下命令即可: Linux/Unix: set guifont=Monospace\空格14 注意这里需要对空格使用\进行转义 Windows: ...
- CODING DevOps 系列第一课:基于开源工具链打造持续交付平台
当下软件发展趋势 当今 IT 行业发展中比较流行的几个技术,首先是微服务化,将原有的一个系统拆分成多个,意味着有多个系统需要构建.测试.部署和运维. 第二个是敏捷开发模式,需求粒度更细化,要求一个可独 ...
- Linux MySQL集群搭建之主从复制
前期准备 准备两台Linux,一主,一从,具体Linux安装MySQL操作步骤:点我直达 集群搭建 注意事项 一主可以多从 一从只能一主 关闭主从机器的防火墙策略 chkconfig iptables ...
- MySQL的使用方法和视图、索引、以及存储过程的一些简单方法
一,基本概念 1, 常用的两种引擎: (1) InnoDB a,支持ACID,简单地说就是支持事务完整性.一致性: b,支持行锁,以及类似ORACLE的一 ...
- windows10安装配置WSL(Ubuntu)
windows10安装配置WSL(Ubuntu) 怎么在windows系统上用上Linux?有这么几种方法: 1. 安装双系统.这种方法的缺点是每次切换系统都需要关机.切换系统. 2. 虚拟机+Lin ...
- mac安装powerdesigner
安装Wine $brew install wine $wine --version 安装PowerDesigner cd PowerDesigner15.1 wine PowerDesigner15_ ...
- gatewayworker 安装 pcntl 扩展
安装其它扩展也是如此. 第一步,查看php版本: /phpstudy/server/php/bin/php -v 第二步,下载扩展文件: http://php.net/releases/ 这里面寻找 ...
- 10、一个action中处理多个方法的调用第二种方法method的方式
在实际的项目中,经常采用现在的第二种方式在struct.xml中采用清单文件的方式 我们首先来看action package com.bjpowernode.struts2; import com.o ...