首页新闻找找看学习计划

asp.net mvc3 一个关于数据排序的问题

0
[已解决问题] 解决于 2013-09-16 17:42
 <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,

可是没有写出来,希望各位大侠给点意见。。。

 

"程序猿"~在路上 | 初学一级 | 园豆:162
提问于:2013-09-11 11:25
< >
分享
最佳答案
0

这方法简单可行,不过要每次都去获取Model。

建议用js 的sort()这个方法去写定义排序规则,http://www.w3school.com.cn/js/jsref_sort.asp

奖励园豆:5
|WinKi| | 小虾三级 |园豆:669 | 2013-09-11 14:03

这个真心不知道怎么用,能再说明白点吗。

"程序猿"~在路上 | 园豆:162 (初学一级) | 2013-09-11 14:27

@"程序猿"~在路上: 

如果你要用JS的话,得把前端代码贴出来。只给了几个a链接,都不知道你要排序的具体对象,如何提建议呢?

C#开发人员 | 园豆:181 (初学一级) | 2013-09-11 17:08

@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]&nbsp;&nbsp;&nbsp;<span>@item.ProductName</span>
                                    </div>
                                </a>                                
                                <div class="area pde">                                    
                                    区服-类型:<span>@item.GameAreaName-@item.ProductTypeName</span>         
                                </div>           
                                <div class="sellLevel pde">
                                    卖家信用:&nbsp;<span class="level"></span>
                                </div>
                                <div class="sellType pde">
                                    交易类型:
                                    &nbsp;
                                       @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>

这是首页代码和要实现的效果,有四种排序方式,目的就是要实现排序。。。

"程序猿"~在路上 | 园豆:162 (初学一级) | 2013-09-11 17:39

@"程序猿"~在路上: 

你能用JS操作DOM吗?JQuery也行,把你foreach里的 <ul>都取出来,排序,重新加到父容器里。

或者在a链接里加个参数,把按哪个排序传到后台。@foreach (var item in Model.GetPagingData())地方再加个OrderBy就行了。

C#开发人员 | 园豆:181 (初学一级) | 2013-09-11 18:01

@CSharp程序员: 嗯好的,谢谢了!

 

 

"程序猿"~在路上 | 园豆:162 (初学一级) | 2013-09-12 09:06
其他回答(2)
0

OrderBy,ThenBy, 需要动态构造 表达式。研究下 ParameterExpression

geass.. | 园豆:1777 (小虾三级) | 2013-09-11 15:14
0

该页无法显示呗 | 园豆:202 (菜鸟二级) | 2013-11-09 16:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册