【问题标题】:Sort date through datatables in c# mvc通过 c# mvc 中的数据表对日期进行排序
【发布时间】:2016-06-23 10:36:43
【问题描述】:

我正在尝试对通过数据表定义的所有列进行排序,我有足够的代码进行排序,因为所有其他列都在进行排序。但是日期列出现问题,它转换为格式 103 dd/mm /yyyy 我必须在不将其转换为字符串的情况下对其进行排序。它在 c# MVC 4.5 中构建。我与之相关的代码如下

#region Sort
var sortColumnIndex = Convert.ToInt32(Request["iSortCol_0"]);
var sortOrder = Request["sSortDir_0"].ToString();
var sortColumnName = GridSettingsBuilder.GetGridColumnName(EnumList.GridSettingTypeEnum.EmployeeActivity, sortColumnIndex);
string sortString = string.Empty;
if (!string.IsNullOrEmpty(sortColumnName))
{
     sortString = sortColumnName + " " + sortOrder;
}
activityList = activityList.OrderBy(sortString).ToList<GetEmployeeActivityList>();
#endregion

查看页面上的代码

window["@Model.TableId"] = $(table).dataTable(
                        {
                            "bJQueryUI": true,
                            "processing": true,
                            "serverSide": true,
                            "aoColumnDefs": [
                                { "aTargets": [6],
                                        "bSortable": true,
                                        "sWidth": "8%",
                                        "mRender": function(data, type, full) {
                                            var input = data;//FormatDate(data);
                                            if(data == "" || data == null)
                                            {

                                                return '<div class="input-group date rptDateFrom" ><input readonly="true" type="text" name="rptDateFro" class="form-control input-small" id="txtidex" style="display:none;" onkeydown="return false"  /><span style="visibility: hidden;" class="input-group-addon"><span style="visibility: visible;" class="glyphicon glyphicon-calendar"></span></span> </div>';
                                                                                                }
                                            else{


                                                return '<div style="text-align:center; id="' + EmployeeActivityID + '" class="EditPlannedDate"">' + input + '<span style="color:black;text-align:center;"></span></div>';
                                            }
"bSort": true,

我只使用了 moment.min.js,

请参考这张图片并帮助我

我想对计划的日期列进行排序,我已经尝试过 date-eu.js 和 columnDefs 之类的情况:[ {类型:'date-eu'}等。 有人可以建议我实现它的正确方法

【问题讨论】:

  • 任何人都可以建议

标签: c# sorting date datatables


【解决方案1】:

date-eu 已弃用。包括date-uk排序插件,并使用date-uk作为sType作为列:

aoColumnDefs: [
  { aTargets: [6],
    sType: 'date-uk', //<---
    bSortable: true,
    sWidth: "8%",
    mRender: function(data, type, full) {
...

现在您实际上正在使用moment.js,您可以也考虑使用更加灵活的专用datetime-moment 插件。您不必定义某个列需要特殊的日期格式,您只需“注册”应该可用的格式:

$.fn.dataTable.moment( 'dd/mm/YYYY' );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2021-10-31
    • 2012-09-17
    • 2015-12-09
    相关资源
    最近更新 更多