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 ...
随机推荐
- 1.react的基础
1.react:专注于UI得一个js库 2.选择使用框架得原因: 写起来简单方便了,但是从稳定性上考虑得话还是原生js要稳定,所以也有很多公司直接使用原生js,但是从开发周期上来说时间会长 之前再写页 ...
- vue2.0 + element ui 实现表格穿梭框
element ui 官网里介绍了穿梭框(Transfer),但在实际使用过程中,会出现一些问题: 1.穿梭框里能放置的内容太少,不能满足复杂的业务需求. 2.当选项过多时,穿梭框很难实现分页,左右两 ...
- Jupyter的搭建
在家实在无聊,伏案沉思良久,忽然灵机一动,何不写写Python?然而电脑上的软件早已人是物非,Pycharm已然不复存在.但是又不想装软件找激活码,于是,只好建个Jupyter先凑合一下. 1. 安装 ...
- Python爬虫小白入门(七)爬取豆瓣音乐top250
抓取目标: 豆瓣音乐top250的歌名.作者(专辑).评分和歌曲链接 使用工具: requests + lxml + xpath. 我认为这种工具组合是最适合初学者的,requests比pytho ...
- 【Spring】Bean的LifeCycle(生命周期)
菜瓜:水稻,上次说Bean的LifeCycle,还没讲完 水稻:啥?说人话? 菜瓜:spring,bean,生命周期 水稻:哦哦,下次直接说人话.说正事,先从BeanFactory.Applicati ...
- ZooKeeper使用入门
ZooKeeper简介 ZooKeeper是一个分布式的,开源的分布式应用程序协调服务,是Hadoop的子项目之一.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式 ...
- HTML新增的语义化标签及其作用
在html5中,新增了几个语义化标签:<article>.<section>.<aside>.<hgroup>. <header>,< ...
- 删库吧,Bug浪——我们在同一家摸鱼的公司
那些口口声声, Bug越来越难写人的,应该盯着你们: 像我一样,我盯着你们,满眼恨意. IT积攒了几十年的漏洞, 所有的死机.溢出.404和超时, 像是专门为你们准备的礼物. 圈复杂度.魔鬼变量.内存 ...
- QT5 解析JSON文件
QT读JSON文件步骤,这里把过程记录一下,网上大多都是怎么写json的,对于读的,记录的不多 首先JSON文件格式必须为UTF-8(非UTF-8 with BOM),UTF-8 with BOM 即 ...
- app之功能测试
1 什么是APP测试? App测试就是软件工程师对这类应用软件进行功能测试,性能测试,安全性测试以及兼容性测试等. 对于app测试我们一般采用的是黑盒测试方法,也会在必要的时候进行自动化测试以及性能测 ...