<div class="orderType"> <ul> <a href="#"> <li class="current" id="defaultSort">默认排序</li> </a> <a href="#"> <li id="salerCredit">卖家信用▽</li> </a> <a class="current" href="#"> <li id="priceSort">价格△</li> </a> <a href="#"> <li id="dateSort">最新发布▽</li> </a> </ul> </div>
怎么实现这四种方式排序啊,我原来试想,给他们各自点击事件,然后改变数据源
var list in Model orderby 字段 select list,
可是没有写出来,希望各位大侠给点意见。。。
这方法简单可行,不过要每次都去获取Model。
建议用js 的sort()这个方法去写定义排序规则,http://www.w3school.com.cn/js/jsref_sort.asp
这个真心不知道怎么用,能再说明白点吗。
@"程序猿"~在路上:
如果你要用JS的话,得把前端代码贴出来。只给了几个a链接,都不知道你要排序的具体对象,如何提建议呢?
@CSharp程序员:
<div class="orderType"> <ul> <a href="#"><li class="current" id="defaultSort">@Html.ActionLink("默认排序", "SelectProduct", "IBuy", new{sortBy="GameName"}, null)</li></a> <a href="#"><li id="salerCredit">卖家信用▽</li></a> <a class="current" href="#"><li id="priceSort">价格△</li></a> <a href="#"><li id="dateSort">最新发布▽</li></a> </ul> </div> </div> <!--商品列表--> <div class="productDetailList"> <div id="products_1"> @foreach (var item in Model.GetPagingData()) { <ul> <li> <div class="text"> <a href="#"> <div class="name pde"> [@item.GameName] <span>@item.ProductName</span> </div> </a> <div class="area pde"> 区服-类型:<span>@item.GameAreaName-@item.ProductTypeName</span> </div> <div class="sellLevel pde"> 卖家信用: <span class="level"></span> </div> <div class="sellType pde"> 交易类型: @if (@item.ProductTradeType == 0) { <span class="type2"></span> <span class="type3"></span> } @if (@item.ProductTradeType == 1) { <span class="type1"></span> <span class="type3"></span> } </div> </div> <label> ¥@item.ProductPrice</label> </li> </ul> } </div>
这是首页代码和要实现的效果,有四种排序方式,目的就是要实现排序。。。
@"程序猿"~在路上:
你能用JS操作DOM吗?JQuery也行,把你foreach里的 <ul>都取出来,排序,重新加到父容器里。
或者在a链接里加个参数,把按哪个排序传到后台。@foreach (var item in Model.GetPagingData())地方再加个OrderBy就行了。
@CSharp程序员: 嗯好的,谢谢了!
OrderBy,ThenBy, 需要动态构造 表达式。研究下 ParameterExpression