FIMS Computing Services FIMS - UWO
Top achievements
Rank 1
FIMS Computing Services FIMS - UWO
asked on 21 Aug 2013, 05:40 PM
Hello,
I'm trying to make a Chart change its displayed info according to what data is displayed in a RadGrid after a filter is used. Allowing for a user to view the data in 2 forms.
Example: When first loading the page the grid contains 96 results and the chart displays the data accordingly with a total of 96 as well. However, once a user were to use a filter (such as only wanting to see usernames that contain the letter 'z') and hits enter the grid changes to only display 3 results but the chart still displays 96 from its original view.
What is the correct way of accomplishing this task? I've attempted several events from the grid:
- OnItemCommand()
- OnItemDataBound()
As well as Chart methods like PreRender()
I've been able to hold the required data the Chart should display in a list but it just won't refresh like the Grid does when a filter is used.
Any ideas?
I'm trying to make a Chart change its displayed info according to what data is displayed in a RadGrid after a filter is used. Allowing for a user to view the data in 2 forms.
Example: When first loading the page the grid contains 96 results and the chart displays the data accordingly with a total of 96 as well. However, once a user were to use a filter (such as only wanting to see usernames that contain the letter 'z') and hits enter the grid changes to only display 3 results but the chart still displays 96 from its original view.
What is the correct way of accomplishing this task? I've attempted several events from the grid:
- OnItemCommand()
- OnItemDataBound()
As well as Chart methods like PreRender()
I've been able to hold the required data the Chart should display in a list but it just won't refresh like the Grid does when a filter is used.
Any ideas?
5 Answers, 1 is accepted
0
Barbaros Saglamtimur
Top achievements
Rank 1
answered on 22 Aug 2013, 07:02 AM
Don't they share same type of data source? In my case they share same type, and I bind data to radchart after radgrid databound.There are other solution but this was the easiest way for me.
Hope this helps.
protected
void
RadGrid1_DataBound(
object
sender, EventArgs e)
{
List<IsletmeRaporu> theBoundData = (List<IsletmeRaporu>)RadGrid1.DataSource;
RadHtmlChart1.DataSource = theBoundData;
RadHtmlChart1.DataBind();
}
0
FIMS Computing Services FIMS - UWO
Top achievements
Rank 1
answered on 22 Aug 2013, 03:05 PM
I get the data correct sure when debug/seeing the contents of the chart.
The issue however is, even in the databound() event of the grid. The chart won't update its image, such as Bar A saying 517 but should be significantly lower after a filter search. The grid updates and shows the lower number of results but the chart doesnt. It's simply the issue of postback/refreshing the page after the filter I am having an issue with.
The issue however is, even in the databound() event of the grid. The chart won't update its image, such as Bar A saying 517 but should be significantly lower after a filter search. The grid updates and shows the lower number of results but the chart doesnt. It's simply the issue of postback/refreshing the page after the filter I am having an issue with.
0
Barbaros Saglamtimur
Top achievements
Rank 1
answered on 23 Aug 2013, 10:19 AM
It's interesting. I use exactly same code as I mentioned and works fine (both grid and chart is on an update panel). Which version of radcontrols are you using?
0
FIMS Computing Services FIMS - UWO
Top achievements
Rank 1
answered on 23 Aug 2013, 01:22 PM
My Telerik.Web.UI.dll version is 2013.2.611.45
What about your auto postback settings? It sounds like your code should be all that's required but I guess their may be something really small that is enabled/disabled that's causing the difference.
What about your auto postback settings? It sounds like your code should be all that's required but I guess their may be something really small that is enabled/disabled that's causing the difference.
0
Barbaros Saglamtimur
Top achievements
Rank 1
answered on 26 Aug 2013, 06:51 AM
I trigger update panel with with javascript. Both grid and chart call same function, which updates a hiddenfield's value. On post back I read hiddenfield's value and refresh datasource.
Here is my js
Adding the caller function to grid's hyperlinkcolumn
And chart
Hope this helps.
By the way I am using version 2013.2.806.40
Here is my js
function
refresh(sn, c) {
var
hiddenField = $get(
"HiddenField1"
);
if
(hiddenField) {
hiddenField.value = sn +
"|"
+ c;
setTimeout(
function
() { __doPostBack(hiddenField.id,
''
); }, 100);
}
}
Adding the caller function to grid's hyperlinkcolumn
protected
void
RadGrid1_ItemDataBound(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
HyperLink hyplnkQn = (HyperLink)item[
"textColumn"
].Controls[0];
...
...
string
clickTxt =
string
.Format(
"refresh('{0}','{1}');"
, sn, di.Text);
hyplnkQn.Attributes.Add(
"onclick"
, clickTxt);
}
}
And chart
<
telerik:RadHtmlChart
ID
=
"RadHtmlChart1"
runat
=
"server"
Width
=
"650px"
Height
=
"550px"
OnClientSeriesClicked
=
"OnClientSeriesClicked"
>
function
OnClientSeriesClicked(sender, args) {
var
c = args.get_category();
var
sn = args.get_seriesName();
refresh(sn, c);
}
Hope this helps.
By the way I am using version 2013.2.806.40