Hi,
I have a listGrid which its data is provided via setData (with an array of records).
According to you documentation about filterData\fetchData methods: "When fetchData() is first called, if data has not already been provided via setData(), this method will create a ResultSet"
But in my case, even though I provide data via setData(), after calling filterData(), a ResultSet is returned and assigned to listGrid.data
Here is an example (based on local DataSource https://www.smartclient.com/smartcli...ocalDataSource):
isc.DataSource.create({
ID: "countryDS",
fields:[
{name:"countryCode", title:"Code"},
{name:"countryName", title:"Country"},
{name:"capital", title:"Capital"}
],
clientOnly: true,
testData: countryData
});
countryData = [
{
continent:"North America",
countryName:"United States",
countryCode:"US",
area:9631420,
population:298444215,
gdp:12360.0,
independence:new Date(1776,6,4),
government:"federal republic",
government_desc:2,
capital:"Washington, DC",
member_g8:true,
article:"http://en.wikipedia.org/wiki/United_states"
},
{
continent:"Asia",
countryName:"China",
countryCode:"CH",
area:9596960,
population:1313973713,
gdp:8859.0,
government:"Communist state",
government_desc:0,
capital:"Beijing",
member_g8:false,
article:"http://en.wikipedia.org/wiki/China"
},
{
continent:"Asia",
countryName:"Japan",
countryCode:"JA",
area:377835,
population:127463611,
gdp:4018.0,
government:"constitutional monarchy with parliamentary government",
government_desc:1,
capital:"Tokyo",
member_g8:true,
article:"http://en.wikipedia.org/wiki/Japan"
},
{
continent:"Asia",
countryName:"India",
countryCode:"IN",
area:3287590,
population:1095351995,
gdp:3611.0,
independence:new Date(1947,7,15),
government:"federal republic",
government_desc:2,
capital:"New Delhi",
member_g8:false,
article:"http://en.wikipedia.org/wiki/India"
},
{
continent:"Europe",
countryName:"Germany",
countryCode:"GM",
area:357021,
population:82422299,
gdp:2504.0,
independence:new Date(1871,0,18),
government:"federal republic",
government_desc:2,
capital:"Berlin",
member_g8:true,
article:"http://en.wikipedia.org/wiki/Germany"
},
{
continent:"Europe",
countryName:"United Kingdom",
countryCode:"UK",
area:244820,
population:60609153,
gdp:1830.0,
independence:new Date(1801,0,1),
government:"constitutional monarchy",
government_desc:1,
capital:"London",
member_g8:true,
article:"http://en.wikipedia.org/wiki/United_kingdom"
},
{
continent:"Europe",
countryName:"France",
countryCode:"FR",
area:547030,
population:60876136,
gdp:1816.0,
government:"republic",
government_desc:5,
capital:"Paris",
member_g8:true,
article:"http://en.wikipedia.org/wiki/France"
},
{
continent:"Europe",
countryName:"Italy",
countryCode:"IT",
area:301230,
population:58133509,
gdp:1698.0,
independence:new Date(1861,2,17),
government:"republic",
government_desc:5,
capital:"Rome",
member_g8:true,
article:"http://en.wikipedia.org/wiki/Italy"
},
{
continent:"Asia",
countryName:"Russia",
countryCode:"RS",
area:17075200,
population:142893540,
gdp:1589.0,
independence:new Date(1991,7,24),
government:"federation",
government_desc:3,
capital:"Moscow",
member_g8:true,
article:"http://en.wikipedia.org/wiki/Russia"
},
{
continent:"South America",
countryName:"Brazil",
countryCode:"BR",
area:8511965,
population:188078227,
gdp:1556.0,
independence:new Date(1822,8,7),
government:"federative republic",
government_desc:3,
capital:"Brasilia",
member_g8:false,
article:"http://en.wikipedia.org/wiki/Brazil"
},
{
continent:"North America",
countryName:"Canada",
countryCode:"CA",
area:9984670,
population:33098932,
gdp:1114.0,
independence:new Date(1867,6,1),
government:"constitutional monarchy with parliamentary democracy and federation",
government_desc:1,
capital:"Ottawa",
member_g8:true,
article:"http://en.wikipedia.org/wiki/Canada"
},
{
continent:"North America",
countryName:"Mexico",
countryCode:"MX",
area:1972550,
population:107449525,
gdp:1067.0,
independence:new Date(1810,8,16),
government:"federal republic",
government_desc:2,
capital:"Mexico (Distrito Federal)",
member_g8:false,
article:"http://en.wikipedia.org/wiki/Mexico"
},
{
continent:"Europe",
countryName:"Spain",
countryCode:"SP",
area:504782,
population:40397842,
gdp:1029.0,
independence:new Date(1492,0,1),
government:"parliamentary monarchy",
government_desc:4,
capital:"Madrid",
member_g8:false,
article:"http://en.wikipedia.org/wiki/Spain"
},
{
continent:"Asia",
countryName:"South Korea",
countryCode:"KS",
area:98480,
population:48846823,
gdp:965.3,
independence:new Date(1945,7,15),
government:"republic",
government_desc:5,
capital:"Seoul",
member_g8:false,
article:"http://en.wikipedia.org/wiki/South_korea"
},
{
continent:"Asia",
countryName:"Indonesia",
countryCode:"ID",
area:1919440,
population:245452739,
gdp:865.6,
independence:new Date(1945,7,17),
government:"republic",
government_desc:5,
capital:"Jakarta",
member_g8:false,
article:"http://en.wikipedia.org/wiki/Indonesia"
}
];
isc.ListGrid.create({
ID: "countryList",
width:500, height:224, alternateRecordStyles:true, showAllRecords:true,
fields:[
{name:"countryCode", title:"Code"},
{name:"countryName", title:"Country"},
{name:"capital", title:"Capital"}
]
})
countryList.setData(countryData);
console.log(countryList.data); // At this point the data is an array of records
countryList.dataSource = countryDS;
countryList.filterData({countryCode: 'US'});
console.log(countryList.data); // At this point the data is a ResultSet
*******************************************************
I'm using Version v12.0p_2020-02-13
Please note my comments in the four last lines.
Why am I getting a ResultSet after calling countryList.filterData()?
I want the listGrid data to always be an array of records. It will also always be filtered\sorted client-side.
Please guide me on how to achieve this
I have a listGrid which its data is provided via setData (with an array of records).
According to you documentation about filterData\fetchData methods: "When fetchData() is first called, if data has not already been provided via setData(), this method will create a ResultSet"
But in my case, even though I provide data via setData(), after calling filterData(), a ResultSet is returned and assigned to listGrid.data
Here is an example (based on local DataSource https://www.smartclient.com/smartcli...ocalDataSource):
isc.DataSource.create({
ID: "countryDS",
fields:[
{name:"countryCode", title:"Code"},
{name:"countryName", title:"Country"},
{name:"capital", title:"Capital"}
],
clientOnly: true,
testData: countryData
});
countryData = [
{
continent:"North America",
countryName:"United States",
countryCode:"US",
area:9631420,
population:298444215,
gdp:12360.0,
independence:new Date(1776,6,4),
government:"federal republic",
government_desc:2,
capital:"Washington, DC",
member_g8:true,
article:"http://en.wikipedia.org/wiki/United_states"
},
{
continent:"Asia",
countryName:"China",
countryCode:"CH",
area:9596960,
population:1313973713,
gdp:8859.0,
government:"Communist state",
government_desc:0,
capital:"Beijing",
member_g8:false,
article:"http://en.wikipedia.org/wiki/China"
},
{
continent:"Asia",
countryName:"Japan",
countryCode:"JA",
area:377835,
population:127463611,
gdp:4018.0,
government:"constitutional monarchy with parliamentary government",
government_desc:1,
capital:"Tokyo",
member_g8:true,
article:"http://en.wikipedia.org/wiki/Japan"
},
{
continent:"Asia",
countryName:"India",
countryCode:"IN",
area:3287590,
population:1095351995,
gdp:3611.0,
independence:new Date(1947,7,15),
government:"federal republic",
government_desc:2,
capital:"New Delhi",
member_g8:false,
article:"http://en.wikipedia.org/wiki/India"
},
{
continent:"Europe",
countryName:"Germany",
countryCode:"GM",
area:357021,
population:82422299,
gdp:2504.0,
independence:new Date(1871,0,18),
government:"federal republic",
government_desc:2,
capital:"Berlin",
member_g8:true,
article:"http://en.wikipedia.org/wiki/Germany"
},
{
continent:"Europe",
countryName:"United Kingdom",
countryCode:"UK",
area:244820,
population:60609153,
gdp:1830.0,
independence:new Date(1801,0,1),
government:"constitutional monarchy",
government_desc:1,
capital:"London",
member_g8:true,
article:"http://en.wikipedia.org/wiki/United_kingdom"
},
{
continent:"Europe",
countryName:"France",
countryCode:"FR",
area:547030,
population:60876136,
gdp:1816.0,
government:"republic",
government_desc:5,
capital:"Paris",
member_g8:true,
article:"http://en.wikipedia.org/wiki/France"
},
{
continent:"Europe",
countryName:"Italy",
countryCode:"IT",
area:301230,
population:58133509,
gdp:1698.0,
independence:new Date(1861,2,17),
government:"republic",
government_desc:5,
capital:"Rome",
member_g8:true,
article:"http://en.wikipedia.org/wiki/Italy"
},
{
continent:"Asia",
countryName:"Russia",
countryCode:"RS",
area:17075200,
population:142893540,
gdp:1589.0,
independence:new Date(1991,7,24),
government:"federation",
government_desc:3,
capital:"Moscow",
member_g8:true,
article:"http://en.wikipedia.org/wiki/Russia"
},
{
continent:"South America",
countryName:"Brazil",
countryCode:"BR",
area:8511965,
population:188078227,
gdp:1556.0,
independence:new Date(1822,8,7),
government:"federative republic",
government_desc:3,
capital:"Brasilia",
member_g8:false,
article:"http://en.wikipedia.org/wiki/Brazil"
},
{
continent:"North America",
countryName:"Canada",
countryCode:"CA",
area:9984670,
population:33098932,
gdp:1114.0,
independence:new Date(1867,6,1),
government:"constitutional monarchy with parliamentary democracy and federation",
government_desc:1,
capital:"Ottawa",
member_g8:true,
article:"http://en.wikipedia.org/wiki/Canada"
},
{
continent:"North America",
countryName:"Mexico",
countryCode:"MX",
area:1972550,
population:107449525,
gdp:1067.0,
independence:new Date(1810,8,16),
government:"federal republic",
government_desc:2,
capital:"Mexico (Distrito Federal)",
member_g8:false,
article:"http://en.wikipedia.org/wiki/Mexico"
},
{
continent:"Europe",
countryName:"Spain",
countryCode:"SP",
area:504782,
population:40397842,
gdp:1029.0,
independence:new Date(1492,0,1),
government:"parliamentary monarchy",
government_desc:4,
capital:"Madrid",
member_g8:false,
article:"http://en.wikipedia.org/wiki/Spain"
},
{
continent:"Asia",
countryName:"South Korea",
countryCode:"KS",
area:98480,
population:48846823,
gdp:965.3,
independence:new Date(1945,7,15),
government:"republic",
government_desc:5,
capital:"Seoul",
member_g8:false,
article:"http://en.wikipedia.org/wiki/South_korea"
},
{
continent:"Asia",
countryName:"Indonesia",
countryCode:"ID",
area:1919440,
population:245452739,
gdp:865.6,
independence:new Date(1945,7,17),
government:"republic",
government_desc:5,
capital:"Jakarta",
member_g8:false,
article:"http://en.wikipedia.org/wiki/Indonesia"
}
];
isc.ListGrid.create({
ID: "countryList",
width:500, height:224, alternateRecordStyles:true, showAllRecords:true,
fields:[
{name:"countryCode", title:"Code"},
{name:"countryName", title:"Country"},
{name:"capital", title:"Capital"}
]
})
countryList.setData(countryData);
console.log(countryList.data); // At this point the data is an array of records
countryList.dataSource = countryDS;
countryList.filterData({countryCode: 'US'});
console.log(countryList.data); // At this point the data is a ResultSet
*******************************************************
I'm using Version v12.0p_2020-02-13
Please note my comments in the four last lines.
Why am I getting a ResultSet after calling countryList.filterData()?
I want the listGrid data to always be an array of records. It will also always be filtered\sorted client-side.
Please guide me on how to achieve this
Comment