2012-06-22 2 views
4

Когда я пытаюсь сортировать по трем столбцам (состояние, статус и очередь), я получаю ошибку javascript, в которой m не определено (292 вне диапазона 32) , Я не думаю, что эта ошибка возникает из файла sorttable.js. Он указывает мне на файл jquery.min.js. Я не могу понять, почему эти три столбца имеют проблемы, так как данные внутри них довольно стандартные (просто слова, никогда не пустые). Кажется, что он просто сортирует по тому, какой столбец был успешно успешно отсортирован.m не определено - sorttable.js при сортировке по трем столбцам

Вот код:

Пользователь нажимает на «Go» Button - отправляет запрос запроса AJAX на другую страницу, которая заполняет результаты.

function SubmitSearch() { 
    $("#searchResults").html('<br/><center><img src="../Images/barberpole.gif" style="margin-top:3px;"></center>'); 

    //Deleted all initializing code. There is no problem with this.   

    $.ajax(
    { 
     type: "POST", 
     url: "../ajaxURLs/SearchRequests.aspx?requestID=" + requestID, 
     cache: false, 
     success: function (data) { 
      $("#searchResults").html(data); 
      sorttable.makeSortable(document.getElementById("SearchResults")); 
     } 
    }); 
} 

Таблица

<asp:GridView ID="SearchResults" runat="server" AutoGenerateColumns="False" DataKeyNames="requestNumber" CSSClass="mailGrid" 
      OnRowDataBound="SearchRedirect"> 
       <Columns> 
        <asp:BoundField DataField="requestNumber" HeaderText="Request Number" InsertVisible="False" ReadOnly="True" /> 
        <asp:BoundField DataField="state" HeaderText="State" /> 
        <asp:BoundField DataField="status" HeaderText="Status" /> 
        <asp:BoundField DataField="queue" HeaderText="Queue" /> 
        <asp:BoundField DataField="oem" HeaderText="OEM"/> 
        <asp:BoundField DataField="rayMaterialNum" HeaderText="Material Number"/> 
        <asp:BoundField DataField="mfgPartNumber" HeaderText="Mfg Part Number"/> 
        <asp:BoundField DataField="program" HeaderText="Program"/> 
        <asp:BoundField DataField="purchaseOrder" HeaderText="Purchase Order" /> 
        <asp:BoundField DataField="purchReq" HeaderText="Purchase Requisition"/> 
        <asp:BoundField DataField="businessUnit" HeaderText="Business Unit"/> 
        <asp:BoundField DataField="site" HeaderText="Site"/> 
        <asp:BoundField DataField="buyer" HeaderText="Buyer"/> 
        <asp:BoundField DataField="requisitioner" HeaderText="Requisitioner"/> 
        <asp:BoundField DataField="componentEngineer" HeaderText="Component Engineer"/> 
        <asp:BoundField DataField="responsibleEngineer" HeaderText="Responsible Engineer"/> 
        <asp:BoundField DataField="qualityEngineer" HeaderText="Quality Engineer"/> 
       </Columns> 
      </asp:GridView> 

Я использую версию 2 sorttable.js, Firefox 13.0.1, JQuery v1.7.2

Сгенерированный HTML:

<table id="SearchResults" class="mailGrid" cellspacing="0" border="1" style="border-collapse:collapse;" rules="all"> 
<thead> 
<tr> 
<th class=" " scope="col">Request Number</th> 
<th class=" sorttable_sorted_reverse" scope="col"> 
<th class=" " scope="col">Status</th> 
<th class="" scope="col">Queue</th> 
<th class=" " scope="col">OEM</th> 
<th class=" " scope="col">Raytheon Material Number</th> 
<th class="" scope="col">Mfg Part Number</th> 
<th class="" scope="col">Program</th> 
<th class="" scope="col">Purchase Order</th> 
<th class="" scope="col">Purchase Requisition</th> 
<th class="" scope="col">Business Unit</th> 
<th class="" scope="col">Site</th> 
<th class="" scope="col">Buyer</th> 
<th class="" scope="col">Requisitioner</th> 
<th class="" scope="col">Component Engineer</th> 
<th class="" scope="col">Responsible Engineer</th> 
<th class="" scope="col">Quality Engineer</th> 
</tr> 
</thead> 
<tbody> 
<tr onclick="ViewRequest('2000')"> 
<tr onclick="ViewRequest('2001')"> 
<tr onclick="ViewRequest('2002')"> 
<tr onclick="ViewRequest('2003')"> 
<tr onclick="ViewRequest('2004')"> 
<tr onclick="ViewRequest('2005')"> 
<tr onclick="ViewRequest('2006')"> 
<tr onclick="ViewRequest('2007')"> 
<tr onclick="ViewRequest('2008')"> 
<tr onclick="ViewRequest('2009')"> 
<tr onclick="ViewRequest('2010')"> 
<tr onclick="ViewRequest('2011')"> 
<tr onclick="ViewRequest('2012')"> 
<tr onclick="ViewRequest('2013')"> 
<tr onclick="ViewRequest('2014')"> 
<tr onclick="ViewRequest('2015')"> 
<tr onclick="ViewRequest('2016')"> 
<tr onclick="ViewRequest('2017')"> 
</tbody> 
<tfoot></tfoot> 
</table> 

Пример одного из tr. Все они следуют этому формату, и соответствующие столбцы всегда будут иметь данные.

<tr onclick="ViewRequest('2000')"> 
<td>2000</td> 
<td>Open</td> 
<td>Initiated</td> 
<td>Buyer</td> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
<td>0</td> 
<td>0</td> 
<td>0179450</td> 
<td>Pending</td> 
<td>Pending</td> 
<td>Pending</td> 
<td>Pending</td> 
</tr> 
+0

Какую версию sorttable вы используете? Какой браузер и номер версии? Кроме того, вы можете опубликовать часть сгенерированного HTML, и вы или кто-то может создать скрипку (http://jsfiddle.net), чтобы пройти через код. –

ответ

1

Насколько я знаю, вы должны добавить класс = «Сортируемый» в любую таблицу вы хотите сделать сортировку, может быть, это может решить проблему.

+0

Да, я сделал это с помощью кода: 'sorttable.makeSortable (document.getElementById (" SearchResults "));' У меня проблемы с тремя столбцами. Все остальные столбцы сортируются в порядке. – shawleigh17

Смежные вопросы