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. 记录RecyclerView的位置并进行恢复

    //监听RecyclerView滚动状态 mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Overri ...

  2. .NET Web应用中为什么要使用async/await异步编程

    前言 什么是async/await? await和async是.NET Framework4.5框架.C#5.0语法里面出现的技术,目的是用于简化异步编程模型. async和await的关系? asy ...

  3. oracle使用+简写左关联出现的结果集不一致问题

    这是使用(+)的sql语句(已简写) select a.id,b.num from a,b where a.id=b.id(+) and b.num>10 这是使用left join的sql语句 ...

  4. redis的5种数据结构和基本操作

    1.字符串(string) 1.1设置值 set key value [ex seconds] [px milliseconds] [nx|xx] 例如: 127.0.0.1:6379> set ...

  5. Linux系统管理——Linux简介

    UNIX与Linux发展史 UNIX发展历史 1.1965年,美国麻省理工学院(MIT),通用电气公司(GE)及AT&T的贝尔实验室联合开发Multics工程计划,其目标是开发一种交互式的具有 ...

  6. [CF453D]Little Pony and Elements of Harmony

    题目   点这里看题目. 分析   设\(count(x)\)为\(x\)的二进制中\(1\)的个数.因此\(f(u,v)=count(u\oplus v)\)   看一看每次转移,我们发现最不友好的 ...

  7. WEditor(元素定位工具)安装和定位界面元素

     1. 安装adb(安装方法——百度网盘(无邪)) 2. 安装python-uiautomator2 pip install --pre -U uiautomator2 3. 手机设备安装atx-ag ...

  8. Java中Clob类型转换成String类型的问题

    1.问题: 项目中使用druid+达梦数据库(基本类似Oracle),查出的Clob类型数据在运行时为ClobProxyImpl对象而不是内容,不能转为字符串 2.原代码: map为达梦数据库或Ora ...

  9. Paper templates for Word(Word论文模板)

    经常看论文的朋友可能会发现,像一些大的会议的论文格式都是相同的,他们的格式一般都十分固定,这些论文是用什么软件做出来的呢?一开始我想当然的认为是用LaTeX,因为LaTeX提供了一些文类,我自然而然的 ...

  10. 效率思维模式与Zombie Scrum

    Scrum是由Ken Schwaber和Jeff Sutherland在20世纪90年代提出的概念,并在1995年首次正式确定.起初Scrum是为了解决产品和软件开发固有的复杂性,然而现在Scrum被 ...