Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对动态填充的列表框进行排序_Javascript_Jquery_Asp.net - Fatal编程技术网

Javascript 对动态填充的列表框进行排序

Javascript 对动态填充的列表框进行排序,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我有一个由用户动态填充的列表框,其中的值由管道分隔值和名称组成。我使用键进行检查,以确保相同的值不会被添加两次,但之后我希望对剩余的列表进行排序 我的JavaScript如下所示: function storeaccount(name, account, accountName, Nom) var count = 0; var key = name + "|" + account + "|" + accountName + "|" + Nom; var listBox

我有一个由用户动态填充的列表框,其中的值由管道分隔值和名称组成。我使用键进行检查,以确保相同的值不会被添加两次,但之后我希望对剩余的列表进行排序

我的JavaScript如下所示:

function storeaccount(name, account, accountName, Nom)
    var count = 0;
    var key = name + "|" +  account + "|" + accountName + "|" + Nom;
    var listBox = document.getelementbyid(listbox);    
    for(var i = 0; i < listBox.options.length; i++){
        if(listBox.options[i].value == key)
        { count++;
        }
    }

    if (count < 0) {
        $('<%listbox.clientid%>')append('<option value="' + key + '"> + name + '</option>
    }
函数存储帐户(名称、帐户、帐户名称、名称)
var计数=0;
var key=name+“|”+账户+“|”+账户名称+“|”+名称;
var listBox=document.getelementbyid(listBox);
对于(变量i=0;i

如何按名称对列表框进行排序,同时保持键的完整性,以便在使用jQuery进行重复检查时使用?

如果我是正确的,您希望按字母顺序对列表框进行排序。您还使用JS执行重复检查

我想说的是,让您所做的一切保持原样,在重复检查过程完成后在上面执行排序操作(如2个松散集成的过程)

以下是如何对列表框执行排序:

    function SortList(listname) { 
        var $r = $(listname + " option"); 
        $r.sort(function(a, b) { 
            return (a.value < b.value) ? -1 : (a.value > b.value) ? 1 : 0;
        // if you do not have value attribute for option use the text value. Replace the above line of code with the one below.
        //return (a.value < b.value) ? -1 : (a.value > b.value) ? 1 : 0;
        }); 
        $($r).remove(); 
        $(listname).append($($r)); 
    } 

这里是JSIDLE示例:

如果(count<0){
您的计数是
0
或大于
0
,您能澄清您的问题吗?对不起,这意味着<1,我已经很快地重新键入了该位,对如何排序有任何评论吗?谢谢您不用JS sort()方法?我可以澄清我的问题吗?我如何在上面的示例中使用jquery对列表框进行排序?是的,这就是我想要做的,所以我认为我只是将列表框从示例传递给函数Sorties只需将列表框的ID传递给函数。回答已更新。不幸的是,这似乎对我不起作用?它调用该方法,然后运行s成功,但我的列表随后未排序。我尝试使用调试器单步执行,但它潜入了一个JQuery库,在那里我无法了解发生了什么。因此,可能您没有listbox选项的值。如果不使用option的text属性而不是value。如a.textSortList('#Id_Of_Listbox');