MVC显示表格,点击列头可以排序

前台:

                        <table class="table table-bordered table-hover">
                            <thead>
                                <tr>
                                    <th>序号</th>
                                    <th style="max-width: 100px; vertical-align:middle;">章名称</th>
                                    <th style="max-width: 150px;">节名称</th>
                                    <th>思维导图名称</th>
                                    <th>学员名称</th>
                                    <th>思维导图文件</th>
                                    <th>描述</th>
                                    @*<th>得分</th>*@
                                    <th>@Html.Partial("UndefinedPicSort", "sortCode", new ViewDataDictionary { { "ColumnName", "Score" },{"SortType",ViewData["SortType"]}, { "DisplayName", "得分" },{"TrainingId",ViewData["TrainingId"]},{"UnitContent",ViewData["UnitContent"]},{"ClassId",ViewData["ClassId"]},{"AccountId",ViewData["AccountId"]} })</th>
                                    <th>@Html.Partial("UndefinedPicSort", "sortCode", new ViewDataDictionary { { "ColumnName", "CreateDate" },{"SortType",ViewData["SortType"]}, { "DisplayName", "提交时间" },{"TrainingId",ViewData["TrainingId"]},{"UnitContent",ViewData["UnitContent"]},{"ClassId",ViewData["ClassId"]},{"AccountId",ViewData["AccountId"]} })</th>
                                    <th>是否是前三名</th>
                                    <th>评分</th>
                                </tr>
                            </thead>
                            <tbody>
                                @{
                                    var i = 1;
                                    string strAtt = string.Empty;
                                    //  章Id
                                    var chapterId = 0;
                                    var lastChapterId = 0;
                                    //  节Id
                                    var sectionId = string.Empty;
                                    var lastSectionId = string.Empty;
                                    foreach (CourseUndefinedPicInfe cupi in ViewBag.UndefinedPicList)
                                    {
                                        var accout = accountBll.GetModel(int.Parse(cupi.AuthorId), "");
                                        var baseInfo = baseBll.GetListModel(" Delflag=0 and AccountId=" + cupi.AuthorId);
                                        chapterId = cupi.Id;
                                        sectionId = string.IsNullOrEmpty(cupi.SecionId) ? "0" : cupi.SecionId;
                                        var spanChapter = ((List<CourseUndefinedPicInfe>)ViewBag.UndefinedPicList).FindAll(t => t.Id == cupi.Id).Count;
                                        var spanSection = ((List<CourseUndefinedPicInfe>)ViewBag.UndefinedPicList).FindAll(t => t.SecionId == cupi.SecionId).Count;
                                    <tr>
                                        <td class="contentMiddle">@i</td>
                                        @if (chapterId != lastChapterId)
                                        {
                                            <td id="ChapterTitle_@cupi.Id" rowspan="@spanChapter">@cupi.ChapterTitle</td>
                                        }
                                        @if (sectionId != lastSectionId)
                                        {
                                            <td id="SecionTitle_@cupi.SecionId" rowspan="@spanSection">@cupi.SecionTitle</td>
                                        }
                                        <td class="contentMiddle">@cupi.TaskTitle</td>
                                        <td class="contentMiddle">
                                            @if (baseInfo.Count > 0)
                                            {
                                                @baseInfo.First().RealName
                                            }
                                            else
                                            {
                                                @accout.Nickname
                                            }
                                        </td>

                                        <td class="contentMiddle">
                                            <div style="float: right; padding: 5px 0;" id="AttachNameList">
                                                @if (!string.IsNullOrEmpty(@cupi.AttList))
                                                {
                                                    //解析Json
                                                    JavaScriptSerializer jr = new JavaScriptSerializer();
                                                    var HomeWorkAtt = jr.Deserialize<List<Dianda.AP.Model.Course_UnitHomeWorkOther>>(@cupi.AttList);

                                                    if (HomeWorkAtt != null && HomeWorkAtt.Count > 0)
                                                    {
                                                        foreach (var AttItem in HomeWorkAtt)
                                                        {
                                                            strAtt += "0," + AttItem.AttName + "," + AttItem.AttPath + ":";                                                    
                                                    <a href="DownloadFile?FilePath=@AttItem.AttPath&FileName=@AttItem.AttName">@AttItem.AttName</a>
                                                    <br />
                                                        }
                                                    }
                                                }
                                            </div>
                                        </td>

                                        <td class="contentMiddle">@Html.Raw(cupi.HomeWorkContent)</td>
                                        <td class="contentMiddle">@cupi.Score</td>
                                        <td class="contentMiddle">@cupi.CreateTime</td>
                                        <td class="contentMiddle">@{if (cupi.IsTopThree == true) {<span>是</span>} else {<span>否</span>}}</td>
                                        <td class="contentMiddle">
                                            @if (!string.IsNullOrEmpty(@cupi.AuthorId) && @cupi.AuthorId != ViewBag.AccountId)
                                            {
                                                <input type="text" style="width:50px;" id="@cupi.HId" />
                                                <input type="button" οnclick="submitScore(@cupi.HId)" value="确定" />
                                            }
                                        </td>
                                    </tr>
                                            i++;
                                            lastChapterId = cupi.Id;
                                            lastSectionId = cupi.SecionId;
                                    }
                                }
                            </tbody>
                        </table>

UndefinedPicSort:

@{
    //路由数据 如:Employee/Sortable?sortBy=EmployeeNO&ascending=False
    var routeData = new RouteValueDictionary {
    { "sortCode", ViewData["ColumnName"].ToString() }, 
    { "sortType", ViewData["SortType"].ToString() },
    {"trainingId",ViewData["TrainingId"].ToString()},
    {"unitContent",Dianda.Common.QueryString.Encrypt(ViewData["UnitContent"].ToString())},
    {"classId",ViewData["ClassId"].ToString()},
    {"accountId",Dianda.Common.QueryString.Encrypt(ViewData["AccountId"].ToString())},
    };


    var htmlAttributes = new Dictionary<string, object>();
    if (ViewData["SortType"].ToString() == "ASC")
    {
        htmlAttributes.Add("class", "sortAsc");//添加css样式
    }
    else
    {
        htmlAttributes.Add("class", "sortDesc");
    }
 
    @Html.ActionLink(
    ViewData["DisplayName"].ToString(), // 链接文本 
    Html.ViewContext.RouteData.Values["action"].ToString(), // Action 
    Html.ViewContext.RouteData.Values["controller"].ToString(), // Controller 
    routeData, // 路由数据
    htmlAttributes //HTML属性适用于超链接
    ) 
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring MVC和DataTables中实现排序功能非常简单。首先,你需要在后台获取到DataTables传过来的排序参数,然后使用这个参数来对数据进行排序。在Spring MVC中,可以使用@RequestParam注解来获取请求参数。 在处理请求的方法中,你可以使用@RequestParam注解来获取DataTables传过来的排序参数。例如,你可以使用@RequestParam("order[column]")来获取排序索引,使用@RequestParam("order[dir]")来获取排序的方向(升序或降序)。 接下来,你可以根据获取到的排序参数来对数据进行排序。你可以使用Java中的Collections.sort()方法来对数据进行排序,或者使用数据库查询语句来排序。 最后,将排序后的数据返回给前端,DataTables会自动将排序后的数据显示表格中。 总结一下,实现Spring MVC和DataTables的排序功能的步骤如下: 1. 在后台方法中使用@RequestParam注解获取DataTables传过来的排序参数。 2. 根据获取到的排序参数对数据进行排序。 3. 将排序后的数据返回给前端。 希望以上解答对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [DataTables+SpringMVC实现服务器端分页处理](https://blog.csdn.net/weixin_30482027/article/details/119477729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [datatables+springmvc+bootstrap实现分页](https://download.csdn.net/download/bushqiang/10393004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值