This example demonstrates how to populate a DataTable with delimited text data over XHR. In the second instance, the data includes header data as the first row, which is parsed out with a custom implementation of the DataSource method doBeforeCallback().
Location | Town | ||
---|---|---|---|
Loading... |
Data (standard):
1 | Domino's Pizza|615 Caliente Dr|Sunnyvale|(408) 732-3030|4|http://local.yahoo.com/details?id=21335892&stx=pizza&csz=Sunnyvale+CA&ed=17rS8q160Sy5Htog0TF1m1atNv01Iz7ySeGEMtCL4dJsf1ku0nhziD2qN5XcnHlJtDS4IydIbA-- |
2 | ... |
view plain | print | ? |
Data (with headers):
1 | Restaurant|Location|Town|Telephone|Stars|Website |
2 | Domino's Pizza|615 Caliente Dr|Sunnyvale|(408) 732-3030|4|http://local.yahoo.com/details?id=21335892&stx=pizza&csz=Sunnyvale+CA&ed=17rS8q160Sy5Htog0TF1m1atNv01Iz7ySeGEMtCL4dJsf1ku0nhziD2qN5XcnHlJtDS4IydIbA-- |
3 | ... |
view plain | print | ? |
CSS:
1 | /* No custom CSS. */ |
view plain | print | ? |
Markup:
1 | <div id="text"></div> |
2 | <div id="textWithHeaderData"></div> |
view plain | print | ? |
JavaScript:
1 | YAHOO.util.Event.addListener(window, "load", function() { |
2 | YAHOO.example.XHR_Text = function() { |
3 | var formatUrl = function(elCell, oRecord, oColumn, sData) { |
4 | elCell.innerHTML = "<a href='" + oRecord.getData("Url") + "' target='_blank'>" + sData + "</a>"; |
5 | }; |
6 | |
7 | var myColumnDefs = [ |
8 | {key:"Name", sortable:true, formatter:formatUrl}, |
9 | {key:"Phone"}, |
10 | {key:"City"}, |
11 | {key:"Rating", formatter:YAHOO.widget.DataTable.formatNumber, sortable:true} |
12 | |
13 | ]; |
14 | |
15 | var myDataSource = new YAHOO.util.DataSource("assets/php/text_proxy.txt"); |
16 | //myDataSource.responseType = YAHOO.util.DataSource.TYPE_TEXT; |
17 | myDataSource.responseSchema = { |
18 | recordDelim: "\n", |
19 | fieldDelim: "|", |
20 | fields: ["Name","Address","City","Phone",{key:"Rating",parser:"number"},"Url"] |
21 | }; |
22 | |
23 | var myDataTable = new YAHOO.widget.DataTable("text", myColumnDefs, |
24 | myDataSource, {caption:"Example: Textual Data Over XHR"}); |
25 | |
26 | |
27 | |
28 | var moreColumnDefs = [ |
29 | {key:"Restaurant", sortable:true, formatter:formatUrl}, |
30 | {key:"Location"}, |
31 | {key:"Town"}, |
32 | {key:"Stars", formatter:YAHOO.widget.DataTable.formatNumber, sortable:true} |
33 | ]; |
34 | |
35 | var anotherDataSource = new YAHOO.util.DataSource("assets/php/text_with_headers_proxy.txt"); |
36 | anotherDataSource.responseType = YAHOO.util.DataSource.TYPE_TEXT; |
37 | anotherDataSource.responseSchema = { |
38 | recordDelim: "\n", |
39 | fieldDelim: "|", |
40 | fields: ["Restaurant","Location","Town","Telephone",{key:"Stars",parser:"number"},"Url"] |
41 | }; |
42 | // Upgrade note: As of 2.5.0, the second argument is the full type-converted |
43 | // response from the live data, and not the unconverted raw response |
44 | anotherDataSource.doBeforeCallback = function(oRequest, oFullResponse, oParsedResponse) { |
45 | // Remove the first result (i.e., the headers); |
46 | oParsedResponse.results.shift(); |
47 | return oParsedResponse; |
48 | }; |
49 | |
50 | anotherDataTable = new YAHOO.widget.DataTable("textWithHeaderData", moreColumnDefs, |
51 | anotherDataSource, {caption:"Example: First Record Holds Header Data"}); |
52 | |
53 | return { |
54 | oDS: myDataSource, |
55 | oDT: myDataTable, |
56 | oDS2: anotherDataSource, |
57 | oDT2: anotherDataTable |
58 | }; |
59 | }(); |
60 | }); |
view plain | print | ? |
You can load the necessary JavaScript and CSS for this example from Yahoo's servers. Click here to load the YUI Dependency Configurator with all of this example's dependencies preconfigured.
Note: Logging and debugging is currently turned off for this example.
Copyright © 2011 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Copyright Policy - Job Openings