如何使用jQuery在asp.net ListBox中对日期进行排序

时间:2014-04-10 11:15:54

标签: jquery asp.net

我使用以下jquery脚本将日期添加到列表框中,一切正常,但我无法对列表框进行排序。

我使用了以下脚本行来约会但它不起作用。

var sortedList = $.makeArray($("#lstVisitDates option")).sort(function (a, b) 
{ return Date.parse($(a).text()) < Date.parse ($(b).text()) ? -1 : 1; });

jQuery脚本

function checkValue(el) {
var txt = $("span[id$=spVisitDates] input[type=text]"); 
var svc = $(txt).val()   
var lst = $('#lstVisitDates');
var options = $('#lstVisitDates option'); 
var alreadyExist = false;
$(options).each(function () {
    if ($(this).val() == svc) {
        alert("Item alread exists");
        alreadyExist = true;
        return;
    }
});
if (!alreadyExist)

$(lst).find("option").attr("selected", false);
$(lst).append('<option value="' + svc + '" selected="selected">' + svc + '</option>');


var sortedList = $.makeArray($("#lstVisitDates option")).sort(function (a, b) { return Date.parse  ($(a).text()) < Date.parse ($(b).text()) ? -1 : 1; });
// Clear the options and add the sorted ones    
$(lst).empty().html(sortedList);

return false;

}

日期采用以下格式;

01-四月-2013

04日至2014

渲染后的Html

<select id="lstVisitDates" style="width:220px;" multiple="multiple" name="ctl00$ContentPlaceHolder1$tabContainer$tabScopes$Scopes$lstVisitDates" size="4">
    <option value="15-Apr-2014"></option>
    <option value="02-Apr-2014"></option>
    <option selected="selected" value="08-Apr-2014"></option>
</select>

增加:

这样可以正常工作,但它不会将月份和年份排序。 var sortedList = $ .makeArray($(“#lstVisitDates option”))。sort(function(a,b){return $(a).text()&lt; $(b).text()? - 1:1 ;});

1 个答案:

答案 0 :(得分:0)

您的代码中存在两个漏洞

  1. 您应该使用.val()代替.text()
  2. 解析日期不是最新的,因为它导致NAN
  3. Jquery代码:

    //module to parse the date "dd-mmm-yyyy"
    function parseDMY(s) {
         return new Date(s.replace(/^(\d+)\W+(\w+)\W+/, '$2 $1 '));
    }
    
    $("#lstVisitDates").html($("#lstVisitDates option").sort(function (a, b) {
        return parseDMY($(a).val()) < parseDMY($(b).val()) ? -1 : 1;
    }));
    

    现场演示:

    http://jsfiddle.net/dreamweiver/w3jfF/91/

    快乐编码:)