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

Need value written during client-side OnRequestStart

1 Answer 86 Views
Ajax
This is a migrated thread and some comments may be shown as answers.
eakins05
Top achievements
Rank 1
eakins05 asked on 14 Jan 2010, 09:57 PM
I have a page that is handled entirely by AJAX, and there's an action that I need to perform on the client everytime before hitting the server.  The RadAjaxManager's client-side OnRequestStart event seemed like the perfect place to do this, but what I'm doing is writing to a hidden field and trying to read that hidden field back on the server.  When I take this approach, my value doesn't seem to be available server side.  I put together a quick example that shows this:

<asp:ScriptManager runat="server"
</asp:ScriptManager> 
 
<telerik:RadAjaxManager runat="server" ID="RadAjaxManager1"
    <AjaxSettings> 
        <telerik:AjaxSetting AjaxControlID="btn"
            <UpdatedControls> 
                <telerik:AjaxUpdatedControl ControlID="hField" /> 
                <telerik:AjaxUpdatedControl ControlID="textbox" /> 
                <telerik:AjaxUpdatedControl ControlID="btn" /> 
                <telerik:AjaxUpdatedControl ControlID="label" /> 
            </UpdatedControls> 
        </telerik:AjaxSetting> 
    </AjaxSettings> 
    <ClientEvents OnRequestStart="requestStart" /> 
</telerik:RadAjaxManager> 
 
<asp:HiddenField ID="hField" runat="server" /> 
<asp:TextBox ID="textbox" runat="server" /> 
<asp:Button ID="btn" runat="server" OnClick="btn_Cick" OnClientClick="btn_ClientClick()" /><br /> 
<asp:Label ID="label" runat="server" /> 
 
<script type="text/javascript"
 
    function requestStart(sender, args) { 
        $get('hField').value = $get('textbox').value; 
    } 
 
    function btn_ClientClick() { 
        //$get('hField').value = $get('textbox').value; 
    } 
 
</script> 

And in the codebehind:
protected void btn_Cick(object sender, EventArgs e) 
    label.Text = hField.Value; 


As this code stands, hField.Value is empty.  If I comment out the contents of requestStart and uncomment btn_ClientClick, I get the results I expect.  Is there something I'm missing, or am I using OnRequestStart in a way that wasn't intended.  Is there another place I can put this (besides calling it from every client event that would cause a postback)?

Thanks,
Jared


1 Answer, 1 is accepted

Sort by
0
Nikolay Rusev
Telerik team
answered on 18 Jan 2010, 07:05 AM
Hello Jared,

OnRequestStart client event of RadAjaxManager/RadAjaxPanel is listening for initializeRequest of PageRequestManager. When initializeRequest event happens all the data that need to be send on postback is already prepared and this is the reason for not seeing the value on server. Thus hidden field value must be changed before this event - in client button click might be the right place in the sample scenario.

Sincerely yours,
Nikolay
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
Tags
Ajax
Asked by
eakins05
Top achievements
Rank 1
Answers by
Nikolay Rusev
Telerik team
Share this question
or