I have buttons on ItemCommand that fuction correctly. However when pressed it should be marked as checked and keep like that until user clear all filters or press another button (see image 1).
The aspx code is in image 2.
Is there any trick to solve this problem. I tried to access the button from code behind inside the ItemCommand but the checked didn't work.
The aspx code is in image 2.
Is there any trick to solve this problem. I tried to access the button from code behind inside the ItemCommand but the checked didn't work.
5 Answers, 1 is accepted
0

Shinu
Top achievements
Rank 2
answered on 26 May 2014, 07:13 AM
Hi Paulo,
In order to achieve your scenario please try to change the ButtonType of the RadButton to the ToggleButton as follows.
ASPX:
Let me know if you have any concern.
Thanks,
Shinu.
In order to achieve your scenario please try to change the ButtonType of the RadButton to the ToggleButton as follows.
ASPX:
...
<
CommandItemTemplate
>
<
telerik:RadButton
ID
=
"RadButton1"
runat
=
"server"
ToggleType
=
"Radio"
ButtonType
=
"ToggleButton"
GroupName
=
"Radios"
Text
=
"Clear All Filters"
>
</
telerik:RadButton
>
<
telerik:RadButton
ID
=
"RadButton2"
runat
=
"server"
ToggleType
=
"Radio"
ButtonType
=
"ToggleButton"
GroupName
=
"Radios"
Text
=
"Last 2 weeks"
>
</
telerik:RadButton
>
<
telerik:RadButton
ID
=
"RadButton3"
runat
=
"server"
ToggleType
=
"Radio"
ButtonType
=
"ToggleButton"
GroupName
=
"Radios"
Text
=
"Last 30 days"
>
</
telerik:RadButton
>
<
telerik:RadButton
ID
=
"RadButton4"
runat
=
"server"
ToggleType
=
"Radio"
ButtonType
=
"ToggleButton"
GroupName
=
"Radios"
Text
=
"Last 90 days"
>
</
telerik:RadButton
>
</
CommandItemTemplate
>
...
Let me know if you have any concern.
Thanks,
Shinu.
0

Paulo
Top achievements
Rank 1
answered on 26 May 2014, 11:31 AM
Shinu
thanks for your message but I have tried all types of buttons. When the grid rebinds the buttons go to original states. Also I thought that keeping it checked it would fire the item command in case of any post back but it doesn't. I might need to change the page design. The description of the Item Command functionality should be more clear about what kind of operations it can handle
to avoid people to spend lot of time writing code that won't work. That is just my opinion.
Thank for your help Shinu I really appreciate. If you have any thoughts please let me know. I still have couple of days to have this done.
thanks for your message but I have tried all types of buttons. When the grid rebinds the buttons go to original states. Also I thought that keeping it checked it would fire the item command in case of any post back but it doesn't. I might need to change the page design. The description of the Item Command functionality should be more clear about what kind of operations it can handle
to avoid people to spend lot of time writing code that won't work. That is just my opinion.
Thank for your help Shinu I really appreciate. If you have any thoughts please let me know. I still have couple of days to have this done.
0
Hello Paulo,
I have already replied to the same ticket that was opened by you on the matter, so that I paste my answer here, in order for the rest of the community to benefit of it.
The behavior you are experiencing is expected because after executing particular command in the grid, the controls inside the command item template are recreated, so that their ViewState is not persisted. In order to simulate such a persistence you can execute JavaScript code from the server that checks the clicked button. For example:
ASPX:
C#:
Regards,
Danail Vasilev
Telerik
I have already replied to the same ticket that was opened by you on the matter, so that I paste my answer here, in order for the rest of the community to benefit of it.
The behavior you are experiencing is expected because after executing particular command in the grid, the controls inside the command item template are recreated, so that their ViewState is not persisted. In order to simulate such a persistence you can execute JavaScript code from the server that checks the clicked button. For example:
ASPX:
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
OnItemCommand
=
"RadGrid1_ItemCommand"
>
<
MasterTableView
CommandItemDisplay
=
"Top"
>
<
CommandItemTemplate
>
<
telerik:RadButton
ID
=
"RadButton1"
runat
=
"server"
ToggleType
=
"Radio"
ButtonType
=
"LinkButton"
GroupName
=
"Radios"
AutoPostBack
=
"true"
Text
=
"Clear All Filters"
CommandName
=
"Clear_All"
/>
<
telerik:RadButton
ID
=
"RadButton2"
runat
=
"server"
ToggleType
=
"Radio"
ButtonType
=
"LinkButton"
GroupName
=
"Radios"
AutoPostBack
=
"true"
Text
=
"Last 2 weeks"
CommandName
=
"Last_2_weeks"
/>
<
telerik:RadButton
ID
=
"RadButton3"
runat
=
"server"
ToggleType
=
"Radio"
ButtonType
=
"LinkButton"
GroupName
=
"Radios"
AutoPostBack
=
"true"
Text
=
"Last 30 Days"
CommandName
=
"Last_30_Days"
/>
<
telerik:RadButton
ID
=
"RadButton4"
runat
=
"server"
ToggleType
=
"Radio"
ButtonType
=
"LinkButton"
GroupName
=
"Radios"
AutoPostBack
=
"true"
Text
=
"Last 90 Days"
CommandName
=
"Last_90_Days"
/>
<
telerik:RadButton
ID
=
"RadButton5"
runat
=
"server"
ToggleType
=
"Radio"
ButtonType
=
"LinkButton"
GroupName
=
"Radios"
AutoPostBack
=
"true"
Text
=
"Last 12 Months"
CommandName
=
"Last_12_Months"
/>
<
asp:TextBox
ID
=
"Textbox1"
runat
=
"server"
/>
</
CommandItemTemplate
>
</
MasterTableView
>
</
telerik:RadGrid
>
C#:
protected
void
Page_Load(
object
sender, EventArgs e)
{
RadGrid1.DataSource =
new
int
[] { 1, 2, 3 };
RadGrid1.DataBind();
}
protected
void
RadGrid1_ItemCommand(
object
sender, Telerik.Web.UI.GridCommandEventArgs e)
{
RadButton targetRadButton =
new
RadButton();
GridItem cmdItem = RadGrid1.MasterTableView.GetItems(GridItemType.CommandItem)[0];
switch
(e.CommandName)
{
case
"Clear_All"
:
targetRadButton = cmdItem.FindControl(
"RadButton1"
)
as
RadButton;
break
;
case
"Last_2_weeks"
:
targetRadButton = cmdItem.FindControl(
"RadButton2"
)
as
RadButton;
break
;
case
"Last_30_Days"
:
targetRadButton = cmdItem.FindControl(
"RadButton3"
)
as
RadButton;
break
;
case
"Last_90_Days"
:
targetRadButton = cmdItem.FindControl(
"RadButton4"
)
as
RadButton;
break
;
case
"Last_12_Months"
:
targetRadButton = cmdItem.FindControl(
"RadButton5"
)
as
RadButton;
break
;
}
string
script =
"function f(){$find(\""
+ targetRadButton.ClientID +
"\").set_checked(true); Sys.Application.remove_load(f);}Sys.Application.add_load(f);"
;
ScriptManager.RegisterStartupScript(
this
,
this
.GetType(),
"key"
, script,
true
);
}
Regards,
Danail Vasilev
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.
0

Paulo
Top achievements
Rank 1
answered on 27 May 2014, 11:10 AM
Danail
thank you for your response, but for some reason it didn't work in my project. However I used a different approche. I active what I wanted wich was having the button pressed and calling the item command event handler I added a onclientselecteditemchanged function which fires the item command and when the grid_prerender happen I identify the button and set it to checked. It is a lot of code but it works. Your solution is simple which I like but for some reason didn't work when I added to my project neither when I just reproduced your code in a new project. Let me know if there is anything missing in your solution.
Thank you very much.
thank you for your response, but for some reason it didn't work in my project. However I used a different approche. I active what I wanted wich was having the button pressed and calling the item command event handler I added a onclientselecteditemchanged function which fires the item command and when the grid_prerender happen I identify the button and set it to checked. It is a lot of code but it works. Your solution is simple which I like but for some reason didn't work when I added to my project neither when I just reproduced your code in a new project. Let me know if there is anything missing in your solution.
Thank you very much.
0
Hello Paulo,
I have tried to reproduce the mentioned issue but to no avail - the RadButton inside the RadGrid is properly checked after clicking it. You can watch the short video test in the attached archive and then tell me what I am missing.
If, however, the issue is only reproducible when the used logic is placed in your project it would be better to isolate the issue in a small runnable VS example and then send it back to us, so that we can make an investigation locally.
Thank you for your cooperation.
Regards,
Danail Vasilev
Telerik
I have tried to reproduce the mentioned issue but to no avail - the RadButton inside the RadGrid is properly checked after clicking it. You can watch the short video test in the attached archive and then tell me what I am missing.
If, however, the issue is only reproducible when the used logic is placed in your project it would be better to isolate the issue in a small runnable VS example and then send it back to us, so that we can make an investigation locally.
Thank you for your cooperation.
Regards,
Danail Vasilev
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.