2013-12-18 22 views
7

tôi đang sử dụng chức năng bảng Google Dashboard của, tôi muốn gán giá trị của id để tr của mỗi hàng đó được tạo ra, tôi có mảng như saulàm thế nào để gán giá trị cho TR trong bảng dashboard google

var data = google.visualization.arrayToDataTable([ 
     ['Name', 'Donuts eaten','id'], 
     ['Michael' , 5,'1'], 
     ['Elisa', 7,'2'], 
     ['Robert', 3,'3'], 
     ['John', 2,'4'], 
     ['Jessica', 6,'5'], 
     ['Aaron', 1,'6'], 
     ['Margareth', 8,'7'] 
    ]); 

     var table = new google.visualization.ChartWrapper({ 
        'chartType': 'Table', 
        'containerId': 'chart2', 
        dataTable: data, 
        'options': { 
         'width': '500px' 
        } 
       }); 
       table.draw(); 

Tôi vẫn không thể tìm ra nếu có cách nào đó để ràng buộc các giá trị với các phần tử DOM mà mọi trợ giúp sẽ được đánh giá cao.

+0

câu trả lời đọc asgallant và chú thích cuối cùng . Sử dụng plugin và giúp cải thiện hoặc tự tạo cho mình ... :) – Sami

+0

cũng làm việc của riêng tôi để thực hiện công việc specifc là dễ dàng nhưng Bảng/tính năng này đi kèm với Dashoard, nếu chúng tôi không thể sửa đổi điểm sử dụng 1? coz có quá nhiều đã ra khỏi đó. –

Trả lời

3

Dưới đây là một giải pháp, sử dụng JQuery:

google.visualization.events.addListener(table, 'ready', function() { 
    $('#chart2 .google-visualization-table-tr-odd, #chart2 .google-visualization-table-tr-even').each(function (e) { 
     var idx = $('td:nth-child(2)', this).html(); 
     $(this).attr('id', 'row' + idx); 
    }); 
    }); 

Và để loại bỏ các cột ID:

google.visualization.events.addListener(table, 'ready', function() { 
    $('.google-visualization-table-tr-head td:nth-child(3)').remove(); 
    $('#chart2 .google-visualization-table-tr-odd, #chart2 .google-visualization-table-tr-even').each(function (e) { 
     var td = $('td:nth-child(2)', this) 
     var idx = td.html(); 
     td.remove(); 
     $(this).attr('id', 'row' + idx); 
    }); 
    }); 

với sắp xếp đưa vào tài khoản:

function tableCleanUp() { 
    google.visualization.events.addListener(table.getChart(), 'sort', tableCleanUp2); 
    tableCleanUp2(); 
} 

function tableCleanUp2() { 
    $('.google-visualization-table-tr-head td:nth-child(3)').remove(); 
    $('#chart2 .google-visualization-table-tr-odd, #chart2 .google-visualization-table-tr-even').each(function (e) { 
     var td = $('td:nth-child(2)', this) 
     var idx = td.html(); 
     td.remove(); 
     $(this).attr('id', 'row' + idx); 
    }); 
} 

google.visualization.events.addListener(table, 'ready', tableCleanUp); 
+0

Thx cho trả lời, tôi đã thử điều này, nó hoạt động nhưng có giới hạn cột id, mà tôi thông qua ở trên ví dụ chỉ là một ví dụ, tôi có nghĩa là nó được hiển thị như id nên được áp dụng như một cái gì đó như thế này, họ cách bạn đang làm là tốt đẹp mà u có, một số tên cột và có giá trị html của nó và gán nó cho "", giới hạn là tôi không muốn vượt qua nó như là một val cột. –

+0

Bạn muốn truyền nó như thế nào? Bạn cần một số cách xác định hàng được đề cập nếu bạn muốn gán cho nó một ID từ mảng dữ liệu của bạn. –

+0

"tôi muốn gán giá trị id cho tr của mỗi hàng được tạo" thats what i quoted, như đã đề cập trước đó, tôi đánh giá cao giải pháp của bạn nhưng ID trong mảng dữ liệu được gửi theo cách sao cho nó có thể được gán cho ID của TR , như tôi nghĩ chúng ta đều biết rằng chúng tôi không hiển thị ID trong cột thường, vì nó có thể đến từ DB, nếu bạn sửa đổi điều này một chút tôi chắc chắn sẽ đánh dấu câu hỏi của bạn đúng sự thật. –

-1

Ở dạng đơn giản nhất, bạn có thể thực hiện như sau: tr.id = containerId;

+0

và nơi sử dụng? ContainerId phải là ID của toàn bộ vùng chứa, tôi đoán không chỉ 1 TR. –

0

Không có hỗ trợ trong hiển thị Bảng để gán ID cho số tr. Bạn phải phân tích cú pháp HTML được tạo theo cách thủ công để đặt chúng một cách thích hợp.

+0

Và cách thực hiện? Có thể là câu trả lời chấp nhận được. Tôi đã thử nhưng không thành công: ( – Sami

+0

Không có cách nào dễ dàng để làm điều này. Bạn phải phân tích cú pháp bảng của mình để khớp các giá trị trong ô bảng với giá trị trong DataTable của bạn để xác định duy nhất một hàng (có thể không thực hiện được) Một số hàng của bạn có dữ liệu trùng lặp) Dễ nhất nếu bạn có một ô duy nhất có giá trị khóa duy nhất cho mỗi hàng – asgallant

+1

Nếu bạn cho phép một phích cắm sản phẩm không biết xấu hổ, tôi có một mã nguồn mở (được cấp phép theo GPLv3) hiển thị trong phiên bản beta giờ đây cung cấp chức năng ở trên và vượt quá khả năng hiển thị của Google Bảng mặc định - bao gồm khả năng gán các thuộc tính (như id) cho các phần tử bảng.Bạn có thể tải nó ở đây: https://github.com/asgallant/gViz. Nó rất là một sản phẩm beta (đọc: có thể có rất nhiều lỗi chưa được khám phá), vì vậy tôi không nghĩ rằng nó đã sẵn sàng cho một môi trường sản xuất, nhưng nếu tôi có thể nhận được một số xét nghiệm tích cực, các lỗi có thể bị dập tắt nhanh chóng. – asgallant

Các vấn đề liên quan