jquery在GridView中的每个记录之间插入空行

时间:2016-02-17 00:45:22

标签: c# jquery asp.net gridview

我在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);
            }
        };

更具体地说,我认为问题在于名为“Company”的列没有空白记录。当我将上述代码中“Company”和company的所有实例更改为“LN”和ln(确实包含空白记录)时,GridView不返回任何内容。

任何建议都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

脚本

 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>