フィルタを実行し、構造が以下のような製品を吐き出す URL があります。
/Products/Catalogue/tabid/102/andmode/1/Default.aspx?catfilter=185,223
これにはソート機能があり、上記のようにフィルタリングなしでこれを使用すると、URL は次のようになります。
/Products/Catalogue.aspx?orderby=price&desc=1&psize=9
現在、フィルター処理してから並べ替えを試行すると、並べ替えによって myfilter が上書きされるため、フィルターは null および無効になります。
だから私がする必要があるのは、フィルタがある場合、URLの「catfilter =」部分の後にソートを追加して、URLが次のようになることに注意することです
/Products/Catalogue/tabid/102/andmode/1/Default.aspx?catfilter=8,188&orderby=man&desc=0&psize=36
落とし穴は、常にフィルターが追加されるとは限らないということです。その場合、URL は次のようになります: 
    /Products/Catalogue.aspx
<select id="listSort" class="NormalTextBox SortCatalogue" onchange="location = this.options[this.selectedIndex].value + '&' + getElementById('listLength')[getElementById('listLength').selectedIndex].value.split('?')[1] + document.getElementById('searchstrdiv').innerHTML.replace('amp;','');">
    <option value="?orderby=name&desc=0&">Sort by</option>
    <option value="?orderby=price&desc=0">Lowest price</option>
    <option value="?orderby=price&desc=1">Highest price</option>
    <option value="?orderby=man&desc=0">Brand A-Z</option>
    <option value="?orderby=man&desc=1">Brand Z-A</option>
    <option value="?orderby=name&desc=0">Title A-Z</option>
    <option value="?orderby=name&desc=1">Title Z-A</option>
    <option value="?orderby=ref&desc=0">Code asc</option>
    <option value="?orderby=ref&desc=1">Code desc</option>
</select>
<span style="text-align:right">Page size</span>
<select id="listLength" class="NormalTextBox PageLength" onchange="location = this.options[this.selectedIndex].value + '&' + getElementById('listSort')[getElementById('listSort').selectedIndex].value.split('?')[1] + document.getElementById('searchstrdiv').innerHTML.replace('amp;','');">
    <option value="?psize=9&foo">Page size</option>
    <option value="?psize=6">6 per page</option>
    <option value="?psize=9">9 per page</option>
    <option value="?psize=18">18 per page</option>
    <option value="?psize=36">36 per page</option>
</select>
<script type="text/javascript">
    var searchString = window.location.search.substring(1);
    var i, val;
    var params = searchString.replace('?','&').split('&');
    var pgsize,pgorder,pdesc,searchstr; 
    pgsize = 9;
    pgorder = 'name';
    pdesc = 0;
    searchstr='';
    for (i=0;i<params.length;i++) {
        val = params[i].split('=');
        if(val[0]== "psize")
            pgsize=val[1];
        else if(val[0]== "orderby")
            pgorder=val[1];
        else if(val[0]== "desc")
            pdesc=val[1];
        else if((val[0]).toLowerCase()== "search") { 
            searchstr=val[1]; 
        }
    }
    document.getElementById('listLength').value='?psize=' + pgsize;
    document.getElementById('listSort').value ='?orderby=' + pgorder + '&desc=' + pdesc;
    if(searchstr!='') {
        searchstr =decodeURIComponent(searchstr.replace(/\+/g, '%20'));
        document.getElementById('searchstrdiv').innerHTML= '&search=' + searchstr ;
        document.getElementById('searchtxthdrleft').innerHTML= 'Results for "' ;
        document.getElementById('searchtxthdrright').innerHTML= '"' ;
        document.getElementById('searchtxt').innerHTML = searchstr;
    }
 </script>