Saturday, March 24, 2012

ASP.Net AJAX - Cannot Set focus to a TextBox inside an Update Panel

Hi; I am using the released version of AJAX Controls and I am working on a Web Application with a Masterpage.
What I would like to do is, I have two Radiobuttons and two TextBoxes inside an update panel; When the user clicks the RadioButton1, I would like to set the focus to TextBox1 and if the user clicks the RadioButton2, I would like to set the focus to the TextBox2. I have googled for it and found couple of similar solutions that works with the beta AJAX assembly "Microsoft.Web.Atlas" but it doesn't work with the ASP.Net AJAX which I am using in my current project.

The following code works just fine when I use theMicrosoft.Web.Atlas soplease let me know if anyone knows a solution that works with the released version of AJAX Controls; Thanks in advance.

//***************************************************************************************

//Code behindprotected void RadioButton1_CheckedChanged(object sender, EventArgs e) { SetMyFocus(ref TextBox1); TextBox1.Focus(); }private void SetMyFocus(ref TextBox txtBox) {string focusString ="setTimeout(\"$('" + txtBox.ClientID + "').focus(); \", 100);"; ClientScript.RegisterStartupScript(this.GetType(),"focusString", focusString,true); }protected void RadioButton2_CheckedChanged(object sender, EventArgs e) { SetMyFocus(ref TextBox2); TextBox2.Focus(); }

//***************************************************************************************
 The following code is from the source view of the page
 
<%@dotnet.itags.org. Page Language="C#" MasterPageFile="~/Test.master" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" Title="Untitled Page" %><%@dotnet.itags.org. Register Assembly="Microsoft.Web.Atlas" Namespace="Microsoft.Web.UI" TagPrefix="cc1" %><asp:Content ID="Content1" ContentPlaceHolderID="CPHTest" Runat="Server"> <cc1:ScriptManager ID="ScriptManager2" runat="server" EnablePartialRendering="true"> </cc1:ScriptManager> <cc1:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:RadioButton ID="RadioButton1" runat="server" AutoPostBack="True" OnCheckedChanged="RadioButton1_CheckedChanged" GroupName="Group1" /><br /> <asp:RadioButton ID="RadioButton2" runat="server" AutoPostBack="True" GroupName="Group1" OnCheckedChanged="RadioButton2_CheckedChanged" /><br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /> <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br />   </ContentTemplate> </cc1:UpdatePanel></asp:Content>

Hi,

I am using the new SetFocus method of the ScriptManager class.

Example:

ScriptManager1.SetFocus(TextBox2);

I works with the last release of Microsoft AJAX.

Hope this helps,

David


Wow; that works great; Thanks for the quick reply.

Jacob


I am using the Atlas beta version. I am having the same textbox focus problem. I tried to use the setFocus(), but i couldnt find the setFocus() of the scriptmanager.

Where to use

ScriptManager1.SetFocus(TextBox2);

I just have the

ScriptManager1.Focus() method. please help.

Thanks in Advance


Use the latest version of ASP.NET AJAX


Thanks lot

I also having same prob and search the web for solution. This is tha only place that I found a resolution.

Thanks lot again

No comments:

Post a Comment