2016-02-17 2 views
0

У меня проблемы с пустыми строками между каждой записью в моем GridView. Я подозреваю, что проблема заключается в этом коде:jquery inserting blank row между каждой записью в GridView

var row; 
     function OnSuccess(response) { 
      var xmlDoc = $.parseXML(response.d); 
      var xml = $(xmlDoc); 
      var company = xml.find("Company"); 
      if (row == null) { 
       row = $("[id*=GridView1] tr:last-child").clone(true); 
      } 
      $("[id*=GridView1] tr").not($("[id*=GridView1] tr:first-child")).remove(); 
      if (company.length > 0) { 
       $.each(company, function() { 
        var company = $(this); 
       $("td", row).eq(0).html($(this).find("LN").text()); 
       $("td", row).eq(1).html($(this).find("FN").text()); 
       $("td", row).eq(2).html($(this).find("Company").text()); 
       $("td", row).eq(3).html($(this).find("City").text()); 
       $("td", row).eq(4).html($(this).find("State").text()); 
       $("td", row).eq(5).html($(this).find("sID").text()); 
       $("td", row).eq(6).html($(this).find("Status").text()); 
       $("td", row).eq(7).html($(this).find("DateAss").text()); 
       $("td", row).eq(8).html($(this).find("DateS").text()); 
       $("td", row).eq(9).html($(this).find("DateApp").text()); 
       $("td", row).eq(10).html($(this).find("P").text()); 
       $("td", row).eq(11).html($(this).find("T").text()); 
       $("td", row).eq(12).html($(this).find("N").text()); 
       $("td", row).eq(13).html($(this).find("CCID").text()); 
       $("[id*=GridView1]").append(row); 
       row = $("[id*=GridView1] tr:last-child").clone(true); 
       }); 

       var pager = xml.find("Pager"); 
       $(".Company").ASPSnippets_Pager({ 
        ActiveCssClass: "current", 
        PagerCssClass: "pager", 
        PageIndex: parseInt(pager.find("PageIndex").text()), 
        PageSize: parseInt(pager.find("PageSize").text()), 
        RecordCount: parseInt(pager.find("RecordCount").text()) 
       }); 
       $(".Company").each(function() { 
        var searchPattern = new RegExp('(' + SearchTerm() + ')', 'ig'); 
        $(this).html($(this).text().replace(searchPattern, "<span class = 'highlight'>" + SearchTerm() + "</span>")); 
       }); 
      } else { 
       var empty_row = row.clone(true); 
       $("td:first-child", empty_row).attr("colspan", $("td", row).length); 
       $("td:first-child", empty_row).attr("align", "center"); 
       $("td:first-child", empty_row).html("No records found for the search criteria."); 
       $("td", empty_row).not($("td:first-child", empty_row)).remove(); 
       $("[id*=GridView1]").append(empty_row); 
      } 
     }; 

Более конкретно, я думаю, что проблема заключается в том, что столбец с именем «Компания» не имеет пустых записей. Когда я изменяю все экземпляры «Компания» и компании в приведенном выше коде на «LN» и ln (который содержит пустые записи), GridView ничего не возвращает.

Любые советы будут оценены. Благодаря!

ответ

0

Script

function OnSuccess(response) { 
      var xmlDoc = $.parseXML(response.d); 
      var xml = $(xmlDoc); 

      var details = xml.find("Table1");   
      $("[id*=tblDetailData]").append('<tr>'+ 
         '  <td></td>'+ 
         '  <td></td>'+ 
         '  <td></td>'+ 
         '  <td></td>'+ 
         '  <td></td>'+ 
         '  <td></td>'+ 
         ' </tr>'); 

      var row = $("[id*=tblDetailData] tr:last-child").clone(true);  

      $("[id*=tblDetailData] tr").not($("[id*=tblDetailData] tr:first-child")).remove(); 
      $.each(details, function() { 

       $("td", row).eq(0).html($(this).find("DATE").text()); 
       $("td", row).eq(1).html($(this).find("TYPE").text()); 
       $("td", row).eq(2).html($(this).find("ACTION").text()); 
       $("td", row).eq(3).html($(this).find("USERID").text()); 
       $("td", row).eq(4).html($(this).find("FIELD").text()); 
       $("td", row).eq(5).html($(this).find("DETAIL").text()); 
       $("[id*=tblDetailData]").append(row); 
      }); 

      $('[id*=tblDetailData]').each(function() { 
       $(this).find('td').each(function() { 
        if ($(this).text().trim() == "") { 
         $(this).closest("tr").remove(); 
        }; 
       }); 
      }); 
     } 

Aspx Page

   <table id="tblDetailData"> 
        <thead> 
         <tr class="gridheader_background" style="height: 30px; border-bottom: solid 1px #ccc;"> 
          <td>Date</td> 
          <td>Page</td> 
          <td>Action</td> 
          <td>Update By</td> 
          <td>Field</td> 
          <td>Detail</td> 
         </tr> 
        </thead> 
       </table>