仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 804|回复: 6
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计Asp.net mvc复杂完成基于Razor的分页控...

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:17:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
数据挖掘有点高深的,主要估计就是使用一些算法提取一些实用的数据。学好数据挖掘的话可以应聘baidu或者google,但是一般人家对算法的要求听高的。你最好还是学点应用型的吧。这种主要是研究型的。比来在写一些web使用懂得了一下asp.netmvc发明切实其实好用,以是间接就干上了。不外在利用asp.netmvc的Razor模板的情形其实不向传统webform那样可使用控件。但从Razor的功效上已具有相干取代的功效,只是从Razor角度来讲不是我们寻常说的控件而是子模板。因为Razor能够依据本人需求把功效拆分到子模板中,然后经由过程RenderPage办法输入。从计划的手腕下去看完整能够把分页控件封装成一个子的cshtml,在必要的时分援用上就是了。
作为一个控件的计划其最主要的环节是断绝和自力性,在这方面Razor也思索得对照周密,经由过程PageData能够复杂地举行模板之间的数据巧合成绩。上面经由过程Razor完成一个复杂的分页控件,在完成历程只必要编写一个复杂的cshtml的模板便可。在利用上也其实不必要援用甚么代码或DLL,间接在必要的中央嵌进相干cshtml则能够分页控件的功效。
参数制订

一个控件要输入信息必需制订相干的数据标准,一个复杂的分页控件实在只必要两个参数便可以,分离以后页索引和总页数。能够在Razor模板的顶部声响一下数据标准
  1. @{intpageindex=(int)PageData["pageindex"];intspitindex=0;intpagecount=(int)PageData["pagecount"];}
复制代码
这两上参数就是告知利用者在挪用RenderPage输出的时分必需带上这两个参数值.
分页URL制订

在一些数据查询中常常在URL上会带上一些相干参数,以是在输出分页URL的时分必要复杂地处置一下。
  1. @functions{publicstaticstringGetUrl(intindex){System.Collections.Specialized.NameValueCollectionquerystring=HttpContext.Current.Request.QueryString;System.Text.StringBuildersb=newSystem.Text.StringBuilder();sb.Append("?").AppendFormat("pageindex="+index);foreach(stringkeyinquerystring.Keys){if(key!="pageindex")sb.AppendFormat("&{0}={1}",key,HttpContext.Current.Server.UrlEncode(querystring[key]));}returnsb.ToString();}}
复制代码
复杂地把pageindex附加到以后urlquerystring便可.
分页内容输入

有了以上信息那构建一个分页内容输入就是件复杂的事变了。
  1. <divclass="pagebar"><ul><liid="pageinfo"><a>@Html.Raw(pageindex+1)/@pagecount</a></li>@if(pageindex>0){<li><ahref="@GetUrl(pageindex-1)">Previous</a></li>}@{spitindex=pageindex-2;}@if(spitindex>4){<li><ahref="@GetUrl(0)">1</a></li><li><ahref="@GetUrl(spitindex-2)">...</a></li>}else{for(inti=0;i<spitindex;i++){<li><ahref="@GetUrl(i)">@Html.Raw(i+1)</a></li>}}@for(inti=pageindex-2;i<pageindex;i++){if(i>=pageindexi<0){continue;}<li><ahref="@GetUrl(i)">@Html.Raw(i+1)</a></li>}<li><aid="selectpage"><b>@Html.Raw(pageindex+1)</b></a></li>@for(inti=pageindex+1;i<pagecount;i++){if(i>=pageindex+3){break;}<li><ahref="@GetUrl(i)">@Html.Raw(i+1)</a></li>}@{spitindex=pageindex+3;}@if(pagecount-4>spitindex){<li><ahref="@GetUrl(spitindex+2)">...</a></li><li><ahref="@GetUrl(pagecount-1)">@pagecount</a></li>}else{for(inti=spitindex;i<pagecount;i++){<li><ahref="@GetUrl(i)">@Html.Raw(i+1)</a></li>}}@if(pageindex!=pagecount-1){<li><ahref="@GetUrl(pageindex+1)">Next</a></li>}</ul></div>
复制代码
利用控件

控件利用十分复杂只必要在Razor经由过程RenderPage输入便可
  1. @RenderPage("~/views/controls/pagebar.cshtml",new{pageindex=Model.PageIndex,pagecount=Model.PageCount})
复制代码
控件效果

我之所以想学。NET,是因为一直觉的BILLGATES好厉害,希望有一天能去微软,虽然现在还距离遥远,呵呵:)
深爱那片海 该用户已被删除
沙发
发表于 2015-1-19 06:48:49 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
山那边是海 该用户已被删除
板凳
发表于 2015-1-26 15:34:53 | 只看该作者
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
再现理想 该用户已被删除
地板
发表于 2015-2-4 20:05:56 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
爱飞 该用户已被删除
5#
发表于 2015-2-10 06:23:40 | 只看该作者
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
柔情似水 该用户已被删除
6#
发表于 2015-3-1 00:55:22 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
灵魂腐蚀 该用户已被删除
7#
发表于 2015-3-17 07:08:09 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 01:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表