This is a migrated thread and some comments may be shown as answers.

ClientEvents-OnResponseEnd not working properly

3 Answers 332 Views
Ajax
This is a migrated thread and some comments may be shown as answers.
shinu rag
Top achievements
Rank 1
shinu rag asked on 30 Sep 2011, 07:06 AM
hi...

when using RadAjaxManager, its OnResponseEnd event not working properly...
here everything working when i put one alert('ss') before calling ajaxrequest...
but when i comment the alert('ss') onresponseEnd doesn't show the content from UpdatedControl...

please check my code..

here it is...

js code
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
 
 
<telerik:RadScriptManager ID="RadScriptManager2" Runat="server">
</telerik:RadScriptManager>
 
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="ajaxManager_AjaxRequest"
 ClientEvents-OnResponseEnd="NewEncounterResponseEnd">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="HiddenField1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
 
  
                    <asp:Button ID="btnOK" runat="server" Text="OK" 
                        OnClientClick="returnToParentNewEncounter('Save');"/>
                    <asp:HiddenField ID="HiddenField1" runat="server" />
                     
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
 <script type="text/javascript">
 
function returnToParentNewEncounter(btn)
{
 
   if(btn=='Save')
    {        
       //  alert('ss');
         var ajaxManager = $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("NewEncounter");
    }
}
 
function NewEncounterResponseEnd(sender, args)
{
    var oArg = new Object();
    var oWnd = GetRadWindowNewEncounter();
 
    var hidden_input = document.getElementById("<%= HiddenField1.ClientID %>").value;
    alert(hidden_input);
}
</script>
 
</telerik:RadCodeBlock>

c# code
public void ajaxManager_AjaxRequest(object sender, AjaxRequestEventArgs e)
{
   HiddenField1.Value = "Invalid Patient ID";
}

i used both RadCodeBlock and RadScriptBlock....
but still have the problem.....

3 Answers, 1 is accepted

Sort by
0
Edward
Top achievements
Rank 1
answered on 30 Sep 2011, 09:03 PM
You need to prevent the regular callback that would happen because of the button click. Otherwise two callbacks will happen and your field will not be updated properly.
Try this code:
<asp:Button ID="btnOK" runat="server" Text="OK"
OnClientClick=" returnToParentNewEncounter('Save'); return false; "/>
The alert can slows things down and reverses the calls, or one of them not happen at all.

Cheers.
ExS
0
shinu rag
Top achievements
Rank 1
answered on 01 Oct 2011, 07:21 AM
Hi Edward.. thanks for ur reply....
its working properly when we use 'return false.' with onclientclick...
but in the following situation how can i prevent the button regular callback..
here i add two controls.. one text box and one radcombobox...
combobox have selected index changed event.. i need to execute this event, even the required filed validator is on or not... so i'm  using the validation group.... 

here it all working except getting data from hidden field....

.aspx
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
 
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="ajaxManager_AjaxRequest"
 ClientEvents-OnResponseEnd="NewEncounterResponseEnd">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="HiddenField1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
 
 
<div>
     
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
        ControlToValidate="TextBox1" ErrorMessage="*" ValidationGroup="VG"></asp:RequiredFieldValidator>
    <br />
 
    <telerik:RadComboBox ID="RadComboBox1" Runat="server" AutoPostBack="True"
        onselectedindexchanged="RadComboBox1_SelectedIndexChanged">
        <Items>
            <telerik:RadComboBoxItem runat="server" />
            <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem2"
                Value="RadComboBoxItem2" />
            <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem3"
                Value="RadComboBoxItem3" />
            <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem4"
                Value="RadComboBoxItem4" />
            <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem5"
                Value="RadComboBoxItem5" />
            <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem6"
                Value="RadComboBoxItem6" />
        </Items>
    </telerik:RadComboBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
        ControlToValidate="RadComboBox1" ErrorMessage="*" ValidationGroup="VG"></asp:RequiredFieldValidator>
    <br />
 
 
    <br />
    <asp:Button ID="btnOK" runat="server" Text="OK" 
        OnClientClick="returnToParentNewEncounter('Save');"
        ValidationGroup="VG" CausesValidation="False"/>
         
        <asp:Button ID="Button1" runat="server" Text="Cancel" 
        OnClientClick="returnToParentNewEncounter('Cancel');"/>
    <asp:HiddenField ID="HiddenField1" runat="server" />
 
</div>
 
 
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
 <script type="text/javascript">
 
function GetRadWindowNewEncounter()
{
    var oWindow = null;
    if (window.radWindow) oWindow = window.radWindow;
    else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
    return oWindow;
}
 
function returnToParentNewEncounter(btn)
{
 
   if(btn=='Save')
    {
        if(!Page_ClientValidate())
            return false;
         
         var ajaxManager = $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("NewEncounter");
    }
    else
    {
     var oArg = new Object();
         var oWnd = GetRadWindowNewEncounter();
          
         oWnd.close(oArg);
    }
    
}
 
function NewEncounterResponseEnd(sender, args)
{
 
    var hidden_input = document.getElementById("<%= HiddenField1.ClientID %>").value;
    alert(hidden_input);
     
}
</script>
 
</telerik:RadCodeBlock>


.cs
public void ajaxManager_AjaxRequest(object sender, AjaxRequestEventArgs e)
{
     HiddenField1.Value = "Invalid Patient ID";
}
 
protected void RadComboBox1_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
   Response.Write(RadComboBox1.SelectedValue);
}

thanks
shinurag.

0
shinu rag
Top achievements
Rank 1
answered on 05 Oct 2011, 03:46 AM
anyone there????
Tags
Ajax
Asked by
shinu rag
Top achievements
Rank 1
Answers by
Edward
Top achievements
Rank 1
shinu rag
Top achievements
Rank 1
Share this question
or