如何从aspx文件中提取表数据?

时间:2012-07-08 09:08:36

标签: javascript jquery asp.net

我在呼叫中心工作并拥有一个aspx页面,该页面生成公司所有其他呼叫中心当前统计数据的html表。

我举了一个JSFiddle here生成内容的例子。我担心我只是一个热心的初学者,如果我没有正确地问这个,那么道歉。

我希望只提取我需要的数据,其中包括所有行和标记为的列:

         --- C6 C7 C13 C14

所以我需要看到的是上面的列。

这需要是客户端,所以我假设JS,因为我们无法在服务器上访问或编辑,所以我们不能拥有自己的aspx文件。

我很高兴使用jQuery,我知道可以使用jQuery提取数据,但我似乎无法理解它:(

如果有人愿意使用http://fiddle.jshell.net/UqZjt/show/作为源文件整理JSFiddle,那将非常感激。

提前致谢。

4 个答案:

答案 0 :(得分:3)

正如你对jQuery一样,在你的页面中包含jQuery lib,将这一行添加到你的页面<head>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

以下是基于硬编码标头数组隐藏不需要的列的代码:

$(document).ready(function() {

    //define which column headers to keep
    var headersToKeep = ['---', 'C6', 'C7', 'C13', 'C14'],
        colsToKeep = [],
        table = $('#gvRealtime'),
        ths = table.find('th');

    //iterates over headersToKeep retrieving their indexes
    $.each(headersToKeep, function(i, v) {
        //finds each header and adds its index to the colsToKeep
        colsToKeep.push(ths.filter(function() {
            return $(this).text() == v;
        }).index());
    });

    //makes a new jQuery object containing only the headers/cells not present in the colsToKeep
    $('th, td', '#gvRealtime, #gvTotal').filter(function() {
        return $.inArray($(this).index(), colsToKeep) == -1;
    }).hide(); //and hides them
});

即使您对JS / jQuery没有太多经验,但如果您对每个部分的功能有任何疑问,请对代码进行评论。在jQuery lib之后的<script></script>中的<head>标记内添加它。

这是JSFiddle

当然,稍后你可以根据复选框或其他切换方法获取/制作数组。由于您没有要求任何特定的接口,我将数组保留为硬编码。

编辑:显然,假设您已经知道列号而不是通过其标题文本,您可以使用这个更简单的代码段:

$(document).ready(function() {
    var colsToKeep = [0, 6, 7, 13, 14];
    $('th, td', '#gvRealtime, #gvTotal').filter(function() {
        return $.inArray($(this).index(), colsToKeep) == -1;
    }).hide();
});

<强> JSFiddle

答案 1 :(得分:0)

一次简单的谷歌搜索将我带到了this answer,这使我进入了this fiddle

我试过adapt the code to your requirements

希望您可以使用该功能(它位于最底层)以达到某种效果。

答案 2 :(得分:0)

您可以通过以下方式轻松访问表格的元素:

var table = document.getElementsByTagName("table")[0],
    tabArray = [];
for (var i = 0; i < table.tBodies[0].rows.length; i++) {
    var rowArray = [];
    for (var j = 0; j < table.tBodies[0].rows[i].cells.length; j++)
        rowArray.push(table.tBodies[0].rows[i].cells[j].innerHTML);
    tabArray.push(rowArray);
}

现在,tabArray是一个包含表格单元格内容的二维数组。

答案 3 :(得分:0)

你可以通过jquery实现这个目标

$(document).ready(function() {
$('tr td').each(function() {
    $('#Result').append($(this).text());
});
});

在我的例子中,我添加了一个div,其中包含单元格数据的结果

<div id="Result" ></div>