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 ...
随机推荐
- tensorflow2.0学习笔记
今天我们开始学习tensorflow2.0,用一种简单和循循渐进的方式,带领大家亲身体验深度学习.学习的目录如下图所示: 1.简单的神经网络学习过程 1.1张量生成 1.2常用函数 1.3鸢尾花数据读 ...
- Vue好书推荐
1.Vue.js实战 从基础知识到ui组件封装和剖析,层层推进,最后两个案例实战.适合零基础入门,学完可就业.(推荐看这本) 交流地址(pdf原件):链接(点击跳转):提取码:7IsG 2.vue.j ...
- SpringBoot设置mysql的ssl连接
因工作需要,mysql连接需要开启ssl认证,本文主要讲述客户端如何配置ssl连接. 开发环境信息: SpringBoot: 2.0.5.RELEASE mysql-connector-java: 8 ...
- 使用本地shadow socks代理
1,第一种方式 import urllib2 import socks from sockshandler import SocksiPyHandler opener = urllib2.build_ ...
- os:获取当前目录路径,上级目录路径,上上级目录路径
import os '''***获取当前目录***''' print(os.getcwd()) print(os.path.abspath(os.path.dirname(__file__))) '' ...
- numpy中数组(矩阵)的乘法
我们知道在处理数据的时候,使用矩阵间的运算将会是方便直观的.matlab有先天的优势,算矩阵是它的专长.当然我们用python,经常要用到的可能是numpy这个强大的库. 矩阵有两种乘法,点乘和对应项 ...
- Dubbo——服务调用过程
文章目录 引言 服务的交互 服务降级 集群容错 服务调用 服务端接收请求 总结 引言 经过之前文章的铺垫,现在可以来分析服务的交互调用过程了. 服务的交互 服务降级 从名字上看我们不难理解MockCl ...
- cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort
cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort sort(b,e) sort(b,e,p) stable_sort(b,e) stable_sort(b,e,p) ...
- 添加现有项目到git仓库
情景: 做了一个项目,需要放到git仓库里 为什么做这个记录? 我们一般的操作是先有仓库, 然后 git clone 到一个空文件夹. 然后再这个空文件夹里加项目文件. 再git push ...
- 4a-c++ primer宽字符wchar_t显示设置与输出代码示例
.. #include <iostream> #include <windows.h> #include <locale> //#include<wchar. ...