我的应用程序位于用 C#.Net 编码的 Asp.net MVC3 中,我的要求是,有一个保存到草稿按钮,用于将数据保存到某个表格中我的数据库。我在视图上有一个打印按钮。我正在使用SSRS打印我的数据。当用户填写表单并单击“保存到草稿”时,将保存该数据,然后用户可以单击“打印”按钮以获取已保存数据的SSRS报告。我的问题是当用户点击打印按钮然后应该打开一个新选项卡,应该看到报告。
以下是查看代码
$("#Print_button").live("click", function () {
$('#My_Form').attr('action', 'My Controller action which passes parameter to
SSRS report');
});
打印按钮的HTML
<input type="submit" id="Print_button" value="Print" />
控制器代码
[HttpPost]
public ActionResult Method_That_Pass_ParameterTo_SSRS(MyClass Class_Object)
{
My Logic to pass the parameters to SSRS report
return View(Class_Object);
}
我尝试解决问题
1。我试图在按钮HTML中添加Target =“_ blank”
Jquery Print_Button点击事件中的2。 window.open('MyAction','_ blank')
答案 0 :(得分:1)
试试这个。 正在使用尝试将数据作为报告打印在新窗口/选项卡中。
将您的按钮类型更改为按钮,然后像这样定义点击。
<input type="button" id="Print_button" value="Print" onclick="ShowReport()"/>
然后在你的行动方法方法。
public ActionResult Method_That_Pass_ParameterTo_SSRS(MyClass Class_Object)
{
My Logic to pass the parameters to SSRS report
return View(Class_Object);
}
然后来到你的剧本
<script type="text/javascript">
function ShowReport(e) {
// you can use dataitem here if needed to pass any variable
//var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
//BaseUrl will the url of your website
// for example if url is http://localhost:10259/Home/Index
//then BaseUrl is "http://localhost:10259/"
var FullUrl = "Baseurl"+ "ControllerName/ActionName/" + param1(ifany);
window.open(
'FullUrl',
'_blank' // <- This is what makes it open in a new window.
);
}
</script>
只需确保您的控制器正确地将数据传递到所需的视图。
答案 1 :(得分:0)
我会稍微改变一下逻辑。如果已经通过单击其他按钮保存了数据,则可能无法使用表单传递参数。
相反,您可能拥有Html.ActionLink
并在点击后替换参数。使用这种方法,您可以在新选项卡中打开结果。看:
@Html.ActionLink("Print", "Action", "Controller", new{param = xxx}, new {@target="_blank", @class="print"})
<script>
$(function () {
$('.print').click(function () {
var param = $(".somediv").val() //*Get your param value
this.href = this.href.replace("xxx", param);
});
});
</script>