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报表(测试小例子)的更多相关文章

  1. asp.net 文件操作小例子(创建文件夹,读,写,删)

      静态生成要在虚拟目录下创建文件夹 来保存生成的页面 那么就要对文件进行操作 一.创建文件夹 using System.IO; string name = "aa"; strin ...

  2. java连接mysql的一个小例子

    想要用java 连接数据库,需要在classpath中加上jdbc的jar包路径 在eclipse中,Project的properties里面的java build path里面添加引用 连接成功的一 ...

  3. Spring.Net在ASP.NET Mvc里使用的一个小例子

    就贴个小例子,就不注意格式了. 1.下载dll NuGet的下载地址:http://docs.nuget.org/docs/start-here/installing-nuget 在vs的NuGet里 ...

  4. ASP.NET Cookie对象到底是毛啊?(简单小例子)

    记得刚接触asp.net的时候,就被几个概念搞的头痛不已,比如Request,Response,Session和Cookie.然后还各种在搜索引擎搜,各种问同事的,但是结果就是自己还是很懵的节奏. 那 ...

  5. 在ASP.NET MVC 中使用ActiveReports报表控件

    随着MVC模式的广泛运用,对Web应用系统的开发带来了巨大的影响,我们好像又回到了原来的ASP时代,视乎这是一种后退而不是一种进步,不过MVC模式给我们带来的影响不仅限于我们所看到的这一点..MVC看 ...

  6. lucene.net 3.0.3、结合盘古分词进行搜索的小例子(转)

    lucene.net 3.0.3.结合盘古分词进行搜索的小例子(分页功能)   添加:2013-12-25 更新:2013-12-26 新增分页功能. 更新:2013-12-27 新增按分类查询功能, ...

  7. 七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理

    第三天我们将学习Asp.Net中数据处理功能,了解数据访问层,EF,以及EF中常用的代码实现方式,创建数据访问层和数据入口,处理Post数据,以及数据验证等功能. 系列文章 七天学会ASP.NET M ...

  8. 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递

    通过第一天的学习之后,我们相信您已经对MVC有一些基本了解. 本节所讲的内容是在上节的基础之上,因此需要确保您是否掌握了上一节的内容.本章的目标是在今天学习结束时利用最佳实践解决方案创建一个小型的MV ...

  9. 返璞归真 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 ...

随机推荐

  1. @Ajax.ActionLink跳转页面的问题解决方案 MVC Ajax不支持问题

    [JavaScriptResult]在客户端执行服务器返回的JavaScript代码当一个内置的Ajax辅助方法请求一个操作方法,该方法会返回一个在客户端执行立即的脚本. public ActionR ...

  2. 上位机开发之西门子PLC-S7通信实践

    写在前面: 就目前而言,在中国的工控市场上,西门子仍然占了很大的份额,因此对于上位机开发而言,经常会存在需要与西门子PLC进行通信的情况.然后对于西门子PLC来说,通信方式有很多,下面简单列举一下: ...

  3. 源码分析 | 手写mybait-spring核心功能(干货好文一次学会工厂bean、类代理、bean注册的使用)

    作者:小傅哥 博客:https://bugstack.cn - 汇总系列原创专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言介绍 一个知识点的学习过程基本分为:运行helloworld ...

  4. ubuntu opensips环境搭建

    1.安装前准备,需要安装如下工具: perl. libdbi-perl. libdbd-mysql-perl. libdbd-pg-perl. libfrontier-rpc-perl. libter ...

  5. eurekaAutoServiceRegistration 异常

    方案来自:https://github.com/spring-cloud/spring-cloud-netflix/issues/1952 解决办法: @Component public class ...

  6. 58同城Java面试

    总结这一次面试失败的不冤 很多知识,都是了解.知道,而没有做到明白与彻底的弄懂 差距还是比较大的 以后要多来写总结,提升自己,争取早日被认可 说说今天面试的主要内容和问题吧 希望大家集思广益 面试职位 ...

  7. 【Java入门】JDK安装和环境变量配置(Win7版)

    系统环境:Windows7 x64 安装JDK和JRE版本:1.8.0_191 1.下载JDK安装包 Oracle官网下载网址:https://www.oracle.com/technetwork/j ...

  8. 拒绝降权!教你用 Python 确保制作的短视频独一无二

    1. 场景 前段时间有人私信我,说自己辛辛苦苦剪辑的短视频,上传到某平台后,由于播放量太大,收到 降权 的通知,直接导致这个账号废掉了! 其实,各大视频平台都有自己的一套鉴别算法,针对视频的二次创作, ...

  9. drf之框架基础

    (一)drf基础 全称:django-rest framework 接口:什么是接口.restful接口规范(协议) CBV(基于FBV的基础上形成).CBV生命周期源码----基于restful规范 ...

  10. Hexo快速构建个人小站-自定义域名和自定义主题(二)

    背景交代: 在上一章<Hexo快速构建个人小站-Hexo初始化和将项目托管在Github(一)>中,我们已经成功的利用hexo初始化了博客项目,并托管在Github上,且通过Github的 ...