使用埃阿斯更新ASP .会员管理系统项目中的报表对象方法
埃阿斯技术显著加快了网应用程序的速度。另外,视觉效果方面也有提升。大家都同意,每次点击按钮时整个页面都会被刷新这一点不太友好。如果你的网速不是很快,那么这个过程会很烦人,因为所有的元素都会先消失,再慢慢重新出现。如果只刷新一部分页面,那就美滋滋了。而这正是埃阿斯所提供的。该脚本向服务器发送一个请求,以更新所需的部分信息。然后,脚本将更新的数据插入页面上的正确位置。
在这个页面中,我想用一个简单的方法通过埃阿斯更新ASP .会员管理系统项目中的信息。这种方法被称为"不引人注目的Ajax——微软不引人注目的Ajax。其底线是使用谦虚的库,并且,辅助程序允许你使用埃阿斯而无需编写任何Java脚本语言代码。这个例子会非常简单,适合初学者。那么,我们开始吧。
要在一个手动音量调节项目中使用快速报告。网报表生成器自带的网络报告组件,你需要调整一些配置。即,编辑网络。配置文件并添加必要的库。
将快速报告和快速报告。网库添加到你的项目中。
在Web.config中添加处理句柄,它位于项目的根目录中:
system.webServer处理程序添加名称="FastReportHandler "路径="快速报告" .出口。axd ' verb=' * ' type=' FastReport .网络。经手人。web export///handlers/system。服务器在位于视图文件夹中的Web.config文件中添加命名空间。
命名空间添加命名空间='FastReport' /添加命名空间='FastReport ' .web‘//命名空间在_Layout.cshtml文件的头部分添加脚本和样式:
head @WebReportGlobals .Scripts() @WebReportGlobals .样式()/标题现在我们切换到HomeController.cs。在这里,我们放置业务逻辑:
我已经创建了全局报表对象:
使用系统;使用系统。集合。通用;使用系统Linq .使用系统网络.使用系统网络。手动音量调节使用快速报告网络.使用系统。网络控件;使用系统。全球化;使用网络本地化。模型;命名空间网络本地化.控制器{公共类家庭控制器:控制器{私有WebReport WebReport=new WebReport();//报表对象在类私有字符串report _ path=' J: \ \程序文件(x86)\ \快速报表\ \快速报表中可用。网络\\演示\ \报告\ \ ';//报告文件夹公共操作结果索引(){ SetReport();//加载报告和数据库视图包的方法WebReport=webReport//将网报表传入视图返回视图();} public void SetReport() { System .数据。数据集数据集=新系统数据。DataSet();//创建数据集数据集读取XMl(report _ path ' nwind。XMl ');//加载可扩展标记语言数据库网络报告.报告。注册数据(数据集,'北风');//在报表对象网络报告中注册数据源报告。加载(报告路径'简单交互式。frx’);//将报表加载到网络报告对象网络报告中。宽度=单位。百分比(100);网络报告.高度=单位。百分比(100);} 如你所见,索引方法只包含了报表的加载,并通过视图包将其传递给视图。我将报表上传到单独的SetReport()方法。
现在考虑Index.cshtml的视图:
script src=' http :http://Ajax . aspnetcdn.com/Ajax/jquery/jquery-2 . 1 . 4 . min . js '/script script src=' http :http://Ajax . aspnetcdn.com/Ajax/jquery . migrate/jquery-migrate-1 . 2 . 1 . min . js '/script script src=' http 3360http://Ajax . aspnetcdn.com/标题=“主页”;} @使用(Ajax。开始通知('更新','主页',新的AJaxooptions { updateTargetId=' UpdateHere '/HttpMethod=' POST ',//InsertionMode=InsertionMode。替换,})) { @Html。CheckBox('condition ',True)输入id=' sel ' type=' submit ' value=' select '/} div id=' updatehere ' @ viewpag . webreport . gethtml()/div/div一开始,我决定从https://www.asp.net/ajax/cdn,官网下载必要的库。但是您也可以使用NuGet包来安装库。
最有趣的是助手Ajax。BeginForm()。前两个参数代表动作(方法)和控制器。稍后将创建更新方法。助手与Html非常相似。BeginForm()。只增加了一个参数——“AJaxooptions”。你可以在MSDN阅读更多关于这些选项的信息。最重要的一个是UpdateTargetId。正如您所理解的,它指示显示变更的元素的标识符。在我们的例子中,它是div id='UpdateHere '。@ ViewBag。WebReport.GetHtml()元素已经显示在其中。这样做是为了在首次加载页面时显示来自Index方法的报告。
我在助手中显示复选框和按钮。此复选框将指示报表工具栏启用/禁用的状态。
让我们回到控制器:
public ActionResult Index(字符串条件){ SetReport();ToolbarCondition(条件);视图包。WebReport=webReport返回视图();}在Index方法中,我们传递了条件参数——视图中复选框的状态。此外,它还添加了一个调用ToolbarCondition的方法(条件)。它处理参数并启用或禁用报告工具栏。我们来写这个方法:
public void ToolbarCondition(字符串条件){ if(条件=='true') webReport。ShowToolbar=trueelse webReport。ShowToolbar=false}现在,添加另一个将返回局部视图的方法。这要求Ajax请求只更新页面的一部分,而不是整个页面:
[httpset]public action result Update(字符串条件){ SetReport();ToolbarCondition(条件);视图包。WebReport=webReport返回PartialView(“更新”);}[httpset]行表示该方法接受Post请求。我们的操作需要一个参数条件和一个索引。事实上,一切都是重复的,但最终我们得到了将被插入视图索引的局部视图。现在我们需要添加这个视图。
右键单击方法名称:
然后选择添加视图.
添加新视图。让我们编辑它:
@ViewBag。这是我所有的代码。
您可以运行该应用程序:
打开复选框并单击按钮:
在这种情况下,只更新WebReport对象,而不是整个页面。当页面上有大量信息时非常有用,完全刷新会占用太多时间和资源成本。
以上在ASP.Net MVC项目中使用Ajax更新报表对象的方法,都是边肖分享给大家的内容。希望能给大家一个参考,多多支持我们。
版权声明:使用埃阿斯更新ASP .会员管理系统项目中的报表对象方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。