Hai, i am currently on project that using your very helpful Telerik UI.
I am using RadGrid, and i am following the example like in this link and i got a problem.
I am using one page and multiple UserControl. I got an error RadAjaxManager is only one in one page, and the solution i found is using RadAjaxManagerProxy.
But, i am confused how to use it? especially at Ajax Event Handler.
Please kindly help me.
Thank you in advance.
4 Answers, 1 is accepted

Hello, i can find the edit button, so i reply this post with update.
now my web is using two UserControl in one WebPage.
In WebPage i got:
webpage.aspx
1.
<
telerik:RadScriptManager
runat
=
"server"
ID
=
"RadScriptManager1"
/>
2.
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server" OnAjaxRequest="RadAjaxManager1_AjaxRequest"
>
3.
</
telerik:RadAjaxManager
>
webpage.aspx.cs
protected
void
RadAjaxManager1_AjaxRequest(
object
sender, AjaxRequestEventArgs e)
{
switch
(e.Argument)
{
case
"RebindSenderReferral"
:
usercontrol1
.Rebind();
break
;
case
"RebindAndNavigateSenderReferral"
:
usercontrol1
.RebindAndNavigate();
break
;
case
"RebindReceiverReferral"
:
usercontrol2
.Rebind();
break
;
case
"RebindAndNavigateReceiverReferral"
:
usercontrol2.RebindAndNavigate();
break
;
default
:
break
;
}
and i add this in every usercontrol in webpage
usercontrol1.ascx
1.<
telerik:RadAjaxManagerProxy
ID
=
"RadAjaxManagerProxy1"
runat
=
"server"
>
2. <
telerik:AjaxSetting
AjaxControlID
=
"RadGrid1"
>
3. <
UpdatedControls
>
4. <
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
LoadingPanelID
=
"gridLoadingPanel"
></
telerik:AjaxUpdatedControl
>
5. </
UpdatedControls
>
6. </
telerik:AjaxSetting
>
7. </
AjaxSettings
>
8.</
telerik:RadAjaxManagerProxy
>
function refreshGrid(arg) {
if (!arg) {
$find("<%= RadAjaxManager.GetCurrent(Page).ClientID %>").ajaxRequest("RebindSenderReferral");
}
else {
$find("<%= RadAjaxManager.GetCurrent(Page).ClientID %>").ajaxRequest("RebindAndNavigateSenderReferral");
}
}
usercontrol2.ascx
1.<
telerik:RadAjaxManagerProxy
ID
=
"RadAjaxManagerProxy2"
runat
=
"server"
>
2. <
telerik:AjaxSetting
AjaxControlID
=
"RadGrid2"
>
3. <
UpdatedControls
>
4. <
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid2"
LoadingPanelID
=
"gridLoadingPanel"
></
telerik:AjaxUpdatedControl
>
5. </
UpdatedControls
>
6. </
telerik:AjaxSetting
>
7. </
AjaxSettings
>
8.</
telerik:RadAjaxManagerProxy
>
function refreshGrid(arg) {
if (!arg) {
$find("<%= RadAjaxManager.GetCurrent(Page).ClientID %>").ajaxRequest("RebindReceiverReferral");
}
else {
$find("<%= RadAjaxManager.GetCurrent(Page).ClientID %>").ajaxRequest("RebindAndNavigateReceiverReferral");
}
}
How to make ajax at two RadGrid in different UserControl runnning?
So, when i click at RadGrid1 in UserControl1, the ajax refresh RadGrid1
and click at RadGrid2 in UserControl2 the, the ajax refresh RadGrid2?
Thank you
In order to achieve the required functionality you should add programmatic settings for the both RadGrid controls to be updated by the main RadAjaxManager and also handle the AjaxRequest event in each UserControl separately like this:
UserControl1:
protected
void
Page_Load(
object
sender, EventArgs e)
{ RadAjaxManager manager = RadAjaxManager.GetCurrent(Page);
manager.AjaxSettings.AddAjaxSetting(manager, RadGrid1);
manager.AjaxRequest +=
new
RadAjaxControl.AjaxRequestDelegate(manager_AjaxRequest);
}
protected
void
manager_AjaxRequest(
object
sender, Telerik.Web.UI.AjaxRequestEventArgs e)
{
switch
(e.Argument)
{
case
"RebindSenderReferral"
:
//your logic
break
;
case
"RebindAndNavigateSenderReferral"
:
//your logic
break
;
}
UserControl2:
protected
void
Page_Load(
object
sender, EventArgs e)
{ RadAjaxManager manager = RadAjaxManager.GetCurrent(Page);
manager.AjaxSettings.AddAjaxSetting(manager, RadGrid2);
manager.AjaxRequest +=
new
RadAjaxControl.AjaxRequestDelegate(manager_AjaxRequest);
}
protected
void
manager_AjaxRequest(
object
sender, Telerik.Web.UI.AjaxRequestEventArgs e)
{
switch
(e.Argument)
{
case
"RebindReceiverReferral"
:
//your logic
break
;
case
"RebindAndNavigateReceiverReferral"
:
//your logic
break
;
}
Note that you should remove the RadAjaxManagerProxy control in this approach
Regards,
Maria Ilieva
Telerik

Hai Maria,
Thank you for your reply.
Why i should remove RadAjaxManagerProxy in each usercontrol?
I've done it like this:
<
telerik:RadAjaxManagerProxy
ID
=
"RadAjaxManagerProxy2"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadAjaxManager1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid2"
LoadingPanelID
=
"gridLoadingPanel2"
></
telerik:AjaxUpdatedControl
>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid2"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid2"
LoadingPanelID
=
"gridLoadingPanel2"
></
telerik:AjaxUpdatedControl
>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManagerProxy
>
and it run well
When you have the settings below added programmatically to the main RadAjaxManager you do not need to have them in the RadAjaxManagerProxy controls:
UC1:
protected
void
Page_Load(
object
sender, EventArgs e)
{ RadAjaxManager manager = RadAjaxManager.GetCurrent(Page);
manager.AjaxSettings.AddAjaxSetting(manager, RadGrid1);
manager.AjaxSettings.AddAjaxSetting(RadGrid1, RadGrid1);
manager.AjaxRequest +=
new
RadAjaxControl.AjaxRequestDelegate(manager_AjaxRequest);
}
protected
void
manager_AjaxRequest(
object
sender, Telerik.Web.UI.AjaxRequestEventArgs e)
{
switch
(e.Argument)
{
case
"RebindSenderReferral"
:
//your logic
break
;
case
"RebindAndNavigateSenderReferral"
:
//your logic
break
;
}
UC2:
protected
void
Page_Load(
object
sender, EventArgs e)
{ RadAjaxManager manager = RadAjaxManager.GetCurrent(Page);
manager.AjaxSettings.AddAjaxSetting(manager, RadGrid2);
manager.AjaxSettings.AddAjaxSetting(RadGrid2, RadGrid2);
manager.AjaxRequest +=
new
RadAjaxControl.AjaxRequestDelegate(manager_AjaxRequest);
}
protected
void
manager_AjaxRequest(
object
sender, Telerik.Web.UI.AjaxRequestEventArgs e)
{
switch
(e.Argument)
{
case
"RebindReceiverReferral"
:
//your logic
break
;
case
"RebindAndNavigateReceiverReferral"
:
//your logic
break
;
}
Regards,
Maria Ilieva
Telerik