AJAX UpdatePanel lost focus

Discussion in 'ASP .Net' started by Madison, Jan 12, 2010.

  1. Madison

    Madison Guest

    Hi There,
    I'm writing web application VB VS2008 with ajax. My page has user control
    and textboxes. I group the textbox together and have 3 <asp:updatePanel ...
    updatemode="Conditional"> each group has about 6 textboxes each textboxes
    has AutoPostBack=true when I go to the third textbox with focus on, I cannot
    type any characters to the box. Please helps. Thanks.
    Madison, Jan 12, 2010
    #1
    1. Advertising

  2. Hi Madison,

    I have made a test application based on your description. After testing it,
    I found that if we type some value into the first TextBox and then click
    the second one, the cursor would disappear and we cannot type value into
    the second one. Please tell me whether this behavior is the same to what
    your mentioned.

    If so, let me explain the cause of the behavior first.

    We type some values into the first TextBox and then click the other place
    of the window, the page would be refreshed because we set the AutoPostBack
    property of the TextBox with true. Although we click the second TextBox,
    the application would run the server side post back firstly whether these
    controls are inside the UpdatePanel or not. The cursor which is inside the
    second TextBox would disappear because the page's post back. This is the
    default setting by the ASP.NET Life-cycle.

    If these TextBoxes are placed into an UpdatePanel, we cannot see the
    refresh of the page, so, the cursor's disappearance would be weird.

    To make a workaround, we can set the AutoPostBack property with false. In
    the second TextBox's client side click event, doPostBack and store the
    current TextBox into a HiddenField. In the end, set the focus() function
    after the asynchronous request is ended.

    Refer to this sample:
    <%@ Page Language="vb" AutoEventWireup="false"
    CodeBehind="TestUpdatePanel.aspx.vb"
    Inherits="_44456996.TestUpdatePanel" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title></title>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:HiddenField ID="HF1" runat="server" />
    <div style="border-style: solid; border-width: thin">
    TextBoxes outside the UpdatePanel<br />
    Type into first TextBox and then click the second one,<br />
    the page would be refreshed.<br />
    <asp:TextBox ID="TextBox1" runat="server"
    onclick="TextBoxOnClick(this)" AutoPostBack="false"></asp:TextBox><br />
    <asp:TextBox ID="TextBox2" runat="server"
    onclick="TextBoxOnClick(this)" AutoPostBack="false"></asp:TextBox><br />
    <asp:TextBox ID="TextBox3" runat="server"
    onclick="TextBoxOnClick(this)" AutoPostBack="false"></asp:TextBox><br />
    </div>
    <hr />
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    <div style="border-style: solid; border-width: thin">
    TextBoxes inside the UpdatePanel<br />
    Type into first TextBox and then click the second
    one,<br />
    the page would NOT be refreshed.<br />
    That's what your mentioned.<br />
    <asp:TextBox ID="TextBox4" runat="server"
    onclick="TextBoxOnClick(this)" AutoPostBack="false"></asp:TextBox><br />
    <asp:TextBox ID="TextBox5" runat="server"
    onclick="TextBoxOnClick(this)" AutoPostBack="false"></asp:TextBox><br />
    <asp:TextBox ID="TextBox6" runat="server"
    onclick="TextBoxOnClick(this)" AutoPostBack="false"></asp:TextBox><br />
    </div>
    </ContentTemplate>
    </asp:UpdatePanel>
    </div>

    <script type="text/javascript">

    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(
    function(sender, e) {
    if ($get("HF1").value) {
    var textbox = $get($get("HF1").value);
    textbox.select();
    textbox.focus();
    }
    });

    function TextBoxOnClick(tb) {
    if ($get("HF1").value != tb.id) {
    $get("HF1").value = tb.id;
    __doPostBack(tb.id, "");
    }
    }

    </script>

    </form>
    </body>
    </html>


    Note that, to make these script run correctly, please place the script tag
    under the ScriptManager control.

    Another choice is set the AutoPostBack property with false and use a Button
    to make a post back.

    Meanwhile, I think these tutorials of the UpdatePanel can help you use it
    and understand the AJAX function more clearly:

    http://www.asp.net/AJAX/Documentation/Live/overview/UpdatePanelOverview.aspx
    http://www.asp.net/AJAX/Documentation/Live/tutorials/UsingUpdatePanelControl
    s.aspx

    Understanding Partial Page Updates with ASP.NET AJAX
    http://www.asp.net/learn/ajax/tutorial-01-cs.aspx

    How Do I:Implement Dynamic Partial-Page Updates with ASP.NET AJAX?
    http://www.asp.net/learn/ajax-videos/video-78.aspx

    How Do I:Use JavaScript to Refresh an ASP.NET AJAX UpdatePanel?
    http://www.asp.net/learn/ajax-videos/video-172.aspx

    How Do I:Use the Conditional UpdateMode of the UpdatePanel?
    http://www.asp.net/learn/ajax-videos/video-177.aspx

    How Do I:Trigger an UpdatePanel Refresh from a DropDownList Control?
    http://www.asp.net/learn/ajax-videos/video-183.aspx

    How To Dynamically Change CSS Using the ASP.NET AJAX UpdatePanel
    http://www.asp.net/learn/ajax-videos/video-285.aspx

    --
    Sincerely,

    Zhi-Qiang Ni

    Microsoft Online Support


    ==================================================
    Get notification to my posts through email? Please refer to
    http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

    MSDN Managed Newsgroup support offering is for non-urgent issues where an
    initial response from the community or a Microsoft Support Engineer within
    2 business day is acceptable. Please note that each follow up response may
    take approximately 2 business days as the support professional working with
    you may need further investigation to reach the most efficient resolution.
    The offering is not appropriate for situations that require urgent,
    real-time or phone-based interactions. Issues of this nature are best
    handled working with a dedicated Microsoft Support Engineer by contacting
    Microsoft Customer Support Services (CSS) at
    http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
    ==================================================

    --------------------
    | Thread-Topic: AJAX UpdatePanel lost focus
    | thread-index: AcqTs/64Rn3xAuuZRU6L+HzRGFvxbg==
    | X-WBNR-Posting-Host: 165.189.6.46
    | From: Madison <>
    | Subject: AJAX UpdatePanel lost focus
    | Date: Tue, 12 Jan 2010 10:21:01 -0800
    | Lines: 6
    | Message-ID: <>
    | MIME-Version: 1.0
    | Content-Type: text/plain;
    | charset="Utf-8"
    | Content-Transfer-Encoding: 7bit
    | X-Newsreader: Microsoft CDO for Windows 2000
    | Content-Class: urn:content-classes:message
    | Importance: normal
    | Priority: normal
    | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4325
    | Newsgroups: microsoft.public.dotnet.framework.aspnet
    | Path: TK2MSFTNGHUB02.phx.gbl
    | Xref: TK2MSFTNGHUB02.phx.gbl
    microsoft.public.dotnet.framework.aspnet:95729
    | NNTP-Posting-Host: tk2msftibfm01.phx.gbl 10.40.244.149
    | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
    |
    | Hi There,
    | I'm writing web application VB VS2008 with ajax. My page has user
    control
    | and textboxes. I group the textbox together and have 3 <asp:updatePanel
    ...
    | updatemode="Conditional"> each group has about 6 textboxes each textboxes

    | has AutoPostBack=true when I go to the third textbox with focus on, I
    cannot
    | type any characters to the box. Please helps. Thanks.
    |
    Zhi-Qiang Ni[MSFT], Jan 13, 2010
    #2
    1. Advertising

  3. Madison

    Madison Guest

    Thank you for your reply.
    Here is my coding and problems that I try to do

    <asp:UpdatePanel ID="UpdatePanel4" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
    <table border="1" style="border-collapse:collapse">
    <tr>
    <td colspan="2"><b>Calculation of assessable revenues for
    remainder and telephone relay addessement purposes:</b></td>
    <td align="right">Amount<br /><i>(000's)</i></td>
    <td style="width:20%"> </td>
    </tr>
    <tr>
    <td valign="top">1.</td>
    <td valign="top">Gross Operating Revenues—Wisconsin
    (including interstate revenues)</td>
    <td align="right"><span
    class="required">*</span><asp:TextBox ID="GrossOperateRev" runat="server"
    CssClass="enabledRight" Width="110px" AutoPostBack="true" /></td>
    <td><asp:Label ID="lblGrossOperateRev" runat="server"
    CssClass="required" /></td>
    </tr>
    <tr>
    <td valign="top">2.</td>
    <td valign="top">Less: Inbound interstate 800 and collect
    revenues billed to customers outside of Wisconsin and included on line 1</td>
    <td align="right"><span
    class="required">*</span><asp:TextBox ID="InboundRev" runat="server"
    CssClass="enabledRight" Width="110px" AutoPostBack="true" /></td>
    <td><asp:Label ID="lblInboundRev" runat="server"
    CssClass="required" /></td>
    </tr>
    <tr>
    <td valign="top">3.</td>
    <td valign="top">Less: Current year write-offs of
    uncollectible revenues </td>
    <td align="right"><span
    class="required">*</span><asp:TextBox ID="CurrWriteOff" runat="server"
    CssClass="enabledRight" Width="110px" AutoPostBack="true" /></td>
    <td><asp:Label ID="lblCurrWriteOff" runat="server"
    CssClass="required" /></td>
    </tr>
    <tr>
    <td valign="top">4.</td>
    <td valign="top">Plus: Current year collection of operating
    revenues previously written off</td>
    <td align="right"><span
    class="required">*</span><asp:TextBox ID="CurrCollectRev" runat="server"
    CssClass="enabledRight" Width="110px" AutoPostBack="true" /></td>
    <td><asp:Label ID="lblCurrCollectRev" runat="server"
    CssClass="required" /></td>
    </tr>
    <tr>
    <td valign="top">5.</td>
    <td valign="top">Less: Revenues included in line 1 that are
    not assessable for remainder and telephone relay assessment purposes</td>
    <td align="right"><span
    class="required">*</span><asp:TextBox ID="RevNotAsses" runat="server"
    CssClass="enabledRight" Width="110px" AutoPostBack="true" /></td>
    <td><asp:Label ID="lblRevNotAsses" runat="server"
    CssClass="required" /></td>
    </tr>
    <tr>
    <td valign="top">6.</td>
    <td valign="top">Total assessable revenues for remainder and
    relay assessment purposes</td>
    <td align="right"><asp:TextBox ID="TotalAssesRev"
    runat="server" CssClass="disabledRight" Width="110px" ReadOnly="true"
    Font-Bold="true" /></td>
    <td> </td>
    </tr>
    </table>
    </ContentTemplate>
    </asp:UpdatePanel>

    The textbox for no.6 will have the total values of 1-5 and everytime the
    value change the line 6 total will get update. The AutoPostsBack need to set
    to true for re-calculate the line 6. Each textbox 1-5 have the the
    TextChanged event that call the function to calculate the total then follow
    by ScriptManager1.SetFocus(textboxname.ClientID) to set focus on the next
    box. I can see the cursor at the next textbox but I cannot enter any values
    to the box. This is only one group of the textbox, I will have more group of
    textbox familiar to this in the page. I cannot use the button to calculate
    because it means that users must click button everytime they enter the
    values.

    Any suggestion would be appreciate. Thanks.


    "Zhi-Qiang Ni[MSFT]" wrote:

    > Hi Madison,
    >
    > I have made a test application based on your description. After testing it,
    > I found that if we type some value into the first TextBox and then click
    > the second one, the cursor would disappear and we cannot type value into
    > the second one. Please tell me whether this behavior is the same to what
    > your mentioned.
    >
    > If so, let me explain the cause of the behavior first.
    >
    > We type some values into the first TextBox and then click the other place
    > of the window, the page would be refreshed because we set the AutoPostBack
    > property of the TextBox with true. Although we click the second TextBox,
    > the application would run the server side post back firstly whether these
    > controls are inside the UpdatePanel or not. The cursor which is inside the
    > second TextBox would disappear because the page's post back. This is the
    > default setting by the ASP.NET Life-cycle.
    >
    > If these TextBoxes are placed into an UpdatePanel, we cannot see the
    > refresh of the page, so, the cursor's disappearance would be weird.
    >
    > To make a workaround, we can set the AutoPostBack property with false. In
    > the second TextBox's client side click event, doPostBack and store the
    > current TextBox into a HiddenField. In the end, set the focus() function
    > after the asynchronous request is ended.
    >
    > Refer to this sample:
    > <%@ Page Language="vb" AutoEventWireup="false"
    > CodeBehind="TestUpdatePanel.aspx.vb"
    > Inherits="_44456996.TestUpdatePanel" %>
    >
    > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    > <html xmlns="http://www.w3.org/1999/xhtml">
    > <head runat="server">
    > <title></title>
    > </head>
    > <body>
    > <form id="form1" runat="server">
    > <div>
    > <asp:ScriptManager ID="ScriptManager1" runat="server" />
    > <asp:HiddenField ID="HF1" runat="server" />
    > <div style="border-style: solid; border-width: thin">
    > TextBoxes outside the UpdatePanel<br />
    > Type into first TextBox and then click the second one,<br />
    > the page would be refreshed.<br />
    > <asp:TextBox ID="TextBox1" runat="server"
    > onclick="TextBoxOnClick(this)" AutoPostBack="false"></asp:TextBox><br />
    > <asp:TextBox ID="TextBox2" runat="server"
    > onclick="TextBoxOnClick(this)" AutoPostBack="false"></asp:TextBox><br />
    > <asp:TextBox ID="TextBox3" runat="server"
    > onclick="TextBoxOnClick(this)" AutoPostBack="false"></asp:TextBox><br />
    > </div>
    > <hr />
    > <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    > <ContentTemplate>
    > <div style="border-style: solid; border-width: thin">
    > TextBoxes inside the UpdatePanel<br />
    > Type into first TextBox and then click the second
    > one,<br />
    > the page would NOT be refreshed.<br />
    > That's what your mentioned.<br />
    > <asp:TextBox ID="TextBox4" runat="server"
    > onclick="TextBoxOnClick(this)" AutoPostBack="false"></asp:TextBox><br />
    > <asp:TextBox ID="TextBox5" runat="server"
    > onclick="TextBoxOnClick(this)" AutoPostBack="false"></asp:TextBox><br />
    > <asp:TextBox ID="TextBox6" runat="server"
    > onclick="TextBoxOnClick(this)" AutoPostBack="false"></asp:TextBox><br />
    > </div>
    > </ContentTemplate>
    > </asp:UpdatePanel>
    > </div>
    >
    > <script type="text/javascript">
    >
    > Sys.WebForms.PageRequestManager.getInstance().add_endRequest(
    > function(sender, e) {
    > if ($get("HF1").value) {
    > var textbox = $get($get("HF1").value);
    > textbox.select();
    > textbox.focus();
    > }
    > });
    >
    > function TextBoxOnClick(tb) {
    > if ($get("HF1").value != tb.id) {
    > $get("HF1").value = tb.id;
    > __doPostBack(tb.id, "");
    > }
    > }
    >
    > </script>
    >
    > </form>
    > </body>
    > </html>
    >
    >
    > Note that, to make these script run correctly, please place the script tag
    > under the ScriptManager control.
    >
    > Another choice is set the AutoPostBack property with false and use a Button
    > to make a post back.
    >
    > Meanwhile, I think these tutorials of the UpdatePanel can help you use it
    > and understand the AJAX function more clearly:
    >
    > http://www.asp.net/AJAX/Documentation/Live/overview/UpdatePanelOverview.aspx
    > http://www.asp.net/AJAX/Documentation/Live/tutorials/UsingUpdatePanelControl
    > s.aspx
    >
    > Understanding Partial Page Updates with ASP.NET AJAX
    > http://www.asp.net/learn/ajax/tutorial-01-cs.aspx
    >
    > How Do I:Implement Dynamic Partial-Page Updates with ASP.NET AJAX?
    > http://www.asp.net/learn/ajax-videos/video-78.aspx
    >
    > How Do I:Use JavaScript to Refresh an ASP.NET AJAX UpdatePanel?
    > http://www.asp.net/learn/ajax-videos/video-172.aspx
    >
    > How Do I:Use the Conditional UpdateMode of the UpdatePanel?
    > http://www.asp.net/learn/ajax-videos/video-177.aspx
    >
    > How Do I:Trigger an UpdatePanel Refresh from a DropDownList Control?
    > http://www.asp.net/learn/ajax-videos/video-183.aspx
    >
    > How To Dynamically Change CSS Using the ASP.NET AJAX UpdatePanel
    > http://www.asp.net/learn/ajax-videos/video-285.aspx
    >
    > --
    > Sincerely,
    >
    > Zhi-Qiang Ni
    >
    > Microsoft Online Support
    >
    >
    > ==================================================
    > Get notification to my posts through email? Please refer to
    > http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.
    >
    > MSDN Managed Newsgroup support offering is for non-urgent issues where an
    > initial response from the community or a Microsoft Support Engineer within
    > 2 business day is acceptable. Please note that each follow up response may
    > take approximately 2 business days as the support professional working with
    > you may need further investigation to reach the most efficient resolution.
    > The offering is not appropriate for situations that require urgent,
    > real-time or phone-based interactions. Issues of this nature are best
    > handled working with a dedicated Microsoft Support Engineer by contacting
    > Microsoft Customer Support Services (CSS) at
    > http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
    > ==================================================
    >
    > --------------------
    > | Thread-Topic: AJAX UpdatePanel lost focus
    > | thread-index: AcqTs/64Rn3xAuuZRU6L+HzRGFvxbg==
    > | X-WBNR-Posting-Host: 165.189.6.46
    > | From: Madison <>
    > | Subject: AJAX UpdatePanel lost focus
    > | Date: Tue, 12 Jan 2010 10:21:01 -0800
    > | Lines: 6
    > | Message-ID: <>
    > | MIME-Version: 1.0
    > | Content-Type: text/plain;
    > | charset="Utf-8"
    > | Content-Transfer-Encoding: 7bit
    > | X-Newsreader: Microsoft CDO for Windows 2000
    > | Content-Class: urn:content-classes:message
    > | Importance: normal
    > | Priority: normal
    > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4325
    > | Newsgroups: microsoft.public.dotnet.framework.aspnet
    > | Path: TK2MSFTNGHUB02.phx.gbl
    > | Xref: TK2MSFTNGHUB02.phx.gbl
    > microsoft.public.dotnet.framework.aspnet:95729
    > | NNTP-Posting-Host: tk2msftibfm01.phx.gbl 10.40.244.149
    > | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
    > |
    > | Hi There,
    > | I'm writing web application VB VS2008 with ajax. My page has user
    > control
    > | and textboxes. I group the textbox together and have 3 <asp:updatePanel
    > ...
    > | updatemode="Conditional"> each group has about 6 textboxes each textboxes
    >
    > | has AutoPostBack=true when I go to the third textbox with focus on, I
    > cannot
    > | type any characters to the box. Please helps. Thanks.
    > |
    >
    > .
    >
    Madison, Jan 13, 2010
    #3
  4. Hi Madison,

    I have explained that if we set the AutoPostBack with true, the focus of
    TextBox would always disappear by the page's reloaded. Although we can set
    focus on the Control which makes this post back by using the ScriptManager
    class setFocus method, there is no way to know which control is clicked.

    So, I think we have to set the AutoPostBack with false to enable the client
    side behavior. As a workaround, we can use the Timer control to make a post
    back and calculate the sum for TextBox6.

    Refer to this:

    <%@ Page Language="vb" AutoEventWireup="false"
    CodeBehind="TestUpdatePanel.aspx.vb"
    Inherits="_44456996.TestUpdatePanel" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title></title>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    <div style="border-style: solid; border-width: thin">
    Value1:<asp:TextBox ID="TextBox1" runat="server"
    AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="Label1" runat="server"
    Text="Label"></asp:Label><br />
    Value2:<asp:TextBox ID="TextBox2" runat="server"
    AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="Label2" runat="server"
    Text="Label"></asp:Label><br />
    Value3:<asp:TextBox ID="TextBox3" runat="server"
    AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="Label3" runat="server"
    Text="Label"></asp:Label><br />
    Value4:<asp:TextBox ID="TextBox4" runat="server"
    AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="Label4" runat="server"
    Text="Label"></asp:Label><br />
    Value5:<asp:TextBox ID="TextBox5" runat="server"
    AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="Label5" runat="server"
    Text="Label"></asp:Label><br />
    SUM:<asp:TextBox ID="TextBox6" runat="server"
    AutoPostBack="false" ReadOnly="true"></asp:TextBox><br />
    <asp:Timer ID="Timer1" runat="server" Interval="2000">
    </asp:Timer>
    </div>
    <asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
    </ContentTemplate>
    </asp:UpdatePanel>
    </div>

    <script runat="server">
    Private Sub Sum()

    If String.IsNullOrEmpty(TextBox1.Text) Then
    Label1.Text = 0
    Else
    Label1.Text = TextBox1.Text
    End If
    If String.IsNullOrEmpty(TextBox2.Text) Then
    Label2.Text = 0
    Else
    Label2.Text = TextBox2.Text
    End If
    If String.IsNullOrEmpty(TextBox3.Text) Then
    Label3.Text = 0
    Else
    Label3.Text = TextBox3.Text
    End If
    If String.IsNullOrEmpty(TextBox4.Text) Then
    Label4.Text = 0
    Else
    Label4.Text = TextBox4.Text
    End If
    If String.IsNullOrEmpty(TextBox5.Text) Then
    Label5.Text = 0
    Else
    Label5.Text = TextBox5.Text
    End If
    TextBox6.Text = (CInt(Label1.Text) + CInt(Label2.Text) +
    CInt(Label3.Text) + CInt(Label4.Text) + CInt(Label5.Text)).ToString

    End Sub

    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As
    System.EventArgs) Handles Timer1.Tick
    Sum()
    End Sub

    </script>

    </form>
    </body>
    </html>


    Please test it and let me know the result.

    --
    Sincerely,

    Zhi-Qiang Ni

    Microsoft Online Support


    ==================================================
    Get notification to my posts through email? Please refer to
    http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

    MSDN Managed Newsgroup support offering is for non-urgent issues where an
    initial response from the community or a Microsoft Support Engineer within
    2 business day is acceptable. Please note that each follow up response may
    take approximately 2 business days as the support professional working with
    you may need further investigation to reach the most efficient resolution.
    The offering is not appropriate for situations that require urgent,
    real-time or phone-based interactions. Issues of this nature are best
    handled working with a dedicated Microsoft Support Engineer by contacting
    Microsoft Customer Support Services (CSS) at
    http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
    ==================================================
    Zhi-Qiang Ni[MSFT], Jan 14, 2010
    #4
  5. Hi Madison,

    I have modified some of my code, maybe this behavior can be more smoother.
    I use a HiddenField to store the clicked TextBox's ID and then setfocus
    back in the Timer's tick event.

    Here is the code:
    <%@ Page Language="vb" AutoEventWireup="false"
    CodeBehind="TestUpdatePanel.aspx.vb"
    Inherits="_44456996.TestUpdatePanel" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title></title>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:HiddenField ID="HF1" runat="server" />
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    <div style="border-style: solid; border-width: thin">
    Value1:<asp:TextBox ID="TextBox1" runat="server"
    onclick="TextBoxOnClick(this)" onblur="TextBoxOnBlur(this)"
    AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="Label1" runat="server"
    Text="Label"></asp:Label><br />
    Value2:<asp:TextBox ID="TextBox2" runat="server"
    onclick="TextBoxOnClick(this)" onblur="TextBoxOnBlur(this)"
    AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="Label2" runat="server"
    Text="Label"></asp:Label><br />
    Value3:<asp:TextBox ID="TextBox3" runat="server"
    onclick="TextBoxOnClick(this)" onblur="TextBoxOnBlur(this)"
    AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="Label3" runat="server"
    Text="Label"></asp:Label><br />
    Value4:<asp:TextBox ID="TextBox4" runat="server"
    onclick="TextBoxOnClick(this)" onblur="TextBoxOnBlur(this)"
    AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="Label4" runat="server"
    Text="Label"></asp:Label><br />
    Value5:<asp:TextBox ID="TextBox5" runat="server"
    onclick="TextBoxOnClick(this)" onblur="TextBoxOnBlur(this)"
    AutoPostBack="false"></asp:TextBox>
    <asp:Label ID="Label5" runat="server"
    Text="Label"></asp:Label><br />
    SUM:<asp:TextBox ID="TextBox6" runat="server"
    AutoPostBack="false" ReadOnly="true"></asp:TextBox><br />
    <asp:Timer ID="Timer1" runat="server" Interval="2000">
    </asp:Timer>
    </div>
    <asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
    </ContentTemplate>
    </asp:UpdatePanel>
    </div>

    <script type="text/javascript">
    function TextBoxOnClick(tb) {
    $get("HF1").value = tb.id;
    }

    function TextBoxOnBlur(tb) {
    $get("HF1").value = "";
    }
    </script>

    <script runat="server">
    Private Sub Sum()

    If String.IsNullOrEmpty(TextBox1.Text) Then
    Label1.Text = 0
    Else
    Label1.Text = TextBox1.Text
    End If
    If String.IsNullOrEmpty(TextBox2.Text) Then
    Label2.Text = 0
    Else
    Label2.Text = TextBox2.Text
    End If
    If String.IsNullOrEmpty(TextBox3.Text) Then
    Label3.Text = 0
    Else
    Label3.Text = TextBox3.Text
    End If
    If String.IsNullOrEmpty(TextBox4.Text) Then
    Label4.Text = 0
    Else
    Label4.Text = TextBox4.Text
    End If
    If String.IsNullOrEmpty(TextBox5.Text) Then
    Label5.Text = 0
    Else
    Label5.Text = TextBox5.Text
    End If

    TextBox6.Text = (CInt(Label1.Text) + CInt(Label2.Text) +
    CInt(Label3.Text) + CInt(Label4.Text) + CInt(Label5.Text)).ToString

    End Sub

    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As
    System.EventArgs) Handles Timer1.Tick
    Sum()
    If Not String.IsNullOrEmpty(HF1.Value) Then
    ScriptManager1.SetFocus(HF1.Value)
    'ScriptManager.RegisterClientScriptBlock(Me.Page,
    GetType(Page), "select", "$get('" + HF1.Value + "').select();", True)
    End If
    End Sub

    </script>

    </form>
    </body>
    </html>

    --
    Sincerely,

    Zhi-Qiang Ni

    Microsoft Online Support


    ==================================================
    Get notification to my posts through email? Please refer to
    http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

    MSDN Managed Newsgroup support offering is for non-urgent issues where an
    initial response from the community or a Microsoft Support Engineer within
    2 business day is acceptable. Please note that each follow up response may
    take approximately 2 business days as the support professional working with
    you may need further investigation to reach the most efficient resolution.
    The offering is not appropriate for situations that require urgent,
    real-time or phone-based interactions. Issues of this nature are best
    handled working with a dedicated Microsoft Support Engineer by contacting
    Microsoft Customer Support Services (CSS) at
    http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
    ==================================================
    Zhi-Qiang Ni[MSFT], Jan 14, 2010
    #5
  6. Madison

    Madison Guest

    Hi Zhi-Qiang Ni,

    Thank you for your sample codes. I created new page and pasted your sample
    and run. It did not work for me. I still have the same problem when I try to
    enter the values into the textbox.



    "Zhi-Qiang Ni[MSFT]" wrote:

    > Hi Madison,
    >
    > I have modified some of my code, maybe this behavior can be more smoother.
    > I use a HiddenField to store the clicked TextBox's ID and then setfocus
    > back in the Timer's tick event.
    >
    > Here is the code:
    > <%@ Page Language="vb" AutoEventWireup="false"
    > CodeBehind="TestUpdatePanel.aspx.vb"
    > Inherits="_44456996.TestUpdatePanel" %>
    >
    > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    > <html xmlns="http://www.w3.org/1999/xhtml">
    > <head runat="server">
    > <title></title>
    > </head>
    > <body>
    > <form id="form1" runat="server">
    > <div>
    > <asp:ScriptManager ID="ScriptManager1" runat="server" />
    > <asp:HiddenField ID="HF1" runat="server" />
    > <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    > <ContentTemplate>
    > <div style="border-style: solid; border-width: thin">
    > Value1:<asp:TextBox ID="TextBox1" runat="server"
    > onclick="TextBoxOnClick(this)" onblur="TextBoxOnBlur(this)"
    > AutoPostBack="false"></asp:TextBox>
    > <asp:Label ID="Label1" runat="server"
    > Text="Label"></asp:Label><br />
    > Value2:<asp:TextBox ID="TextBox2" runat="server"
    > onclick="TextBoxOnClick(this)" onblur="TextBoxOnBlur(this)"
    > AutoPostBack="false"></asp:TextBox>
    > <asp:Label ID="Label2" runat="server"
    > Text="Label"></asp:Label><br />
    > Value3:<asp:TextBox ID="TextBox3" runat="server"
    > onclick="TextBoxOnClick(this)" onblur="TextBoxOnBlur(this)"
    > AutoPostBack="false"></asp:TextBox>
    > <asp:Label ID="Label3" runat="server"
    > Text="Label"></asp:Label><br />
    > Value4:<asp:TextBox ID="TextBox4" runat="server"
    > onclick="TextBoxOnClick(this)" onblur="TextBoxOnBlur(this)"
    > AutoPostBack="false"></asp:TextBox>
    > <asp:Label ID="Label4" runat="server"
    > Text="Label"></asp:Label><br />
    > Value5:<asp:TextBox ID="TextBox5" runat="server"
    > onclick="TextBoxOnClick(this)" onblur="TextBoxOnBlur(this)"
    > AutoPostBack="false"></asp:TextBox>
    > <asp:Label ID="Label5" runat="server"
    > Text="Label"></asp:Label><br />
    > SUM:<asp:TextBox ID="TextBox6" runat="server"
    > AutoPostBack="false" ReadOnly="true"></asp:TextBox><br />
    > <asp:Timer ID="Timer1" runat="server" Interval="2000">
    > </asp:Timer>
    > </div>
    > <asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
    > </ContentTemplate>
    > </asp:UpdatePanel>
    > </div>
    >
    > <script type="text/javascript">
    > function TextBoxOnClick(tb) {
    > $get("HF1").value = tb.id;
    > }
    >
    > function TextBoxOnBlur(tb) {
    > $get("HF1").value = "";
    > }
    > </script>
    >
    > <script runat="server">
    > Private Sub Sum()
    >
    > If String.IsNullOrEmpty(TextBox1.Text) Then
    > Label1.Text = 0
    > Else
    > Label1.Text = TextBox1.Text
    > End If
    > If String.IsNullOrEmpty(TextBox2.Text) Then
    > Label2.Text = 0
    > Else
    > Label2.Text = TextBox2.Text
    > End If
    > If String.IsNullOrEmpty(TextBox3.Text) Then
    > Label3.Text = 0
    > Else
    > Label3.Text = TextBox3.Text
    > End If
    > If String.IsNullOrEmpty(TextBox4.Text) Then
    > Label4.Text = 0
    > Else
    > Label4.Text = TextBox4.Text
    > End If
    > If String.IsNullOrEmpty(TextBox5.Text) Then
    > Label5.Text = 0
    > Else
    > Label5.Text = TextBox5.Text
    > End If
    >
    > TextBox6.Text = (CInt(Label1.Text) + CInt(Label2.Text) +
    > CInt(Label3.Text) + CInt(Label4.Text) + CInt(Label5.Text)).ToString
    >
    > End Sub
    >
    > Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As
    > System.EventArgs) Handles Timer1.Tick
    > Sum()
    > If Not String.IsNullOrEmpty(HF1.Value) Then
    > ScriptManager1.SetFocus(HF1.Value)
    > 'ScriptManager.RegisterClientScriptBlock(Me.Page,
    > GetType(Page), "select", "$get('" + HF1.Value + "').select();", True)
    > End If
    > End Sub
    >
    > </script>
    >
    > </form>
    > </body>
    > </html>
    >
    > --
    > Sincerely,
    >
    > Zhi-Qiang Ni
    >
    > Microsoft Online Support
    >
    >
    > ==================================================
    > Get notification to my posts through email? Please refer to
    > http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.
    >
    > MSDN Managed Newsgroup support offering is for non-urgent issues where an
    > initial response from the community or a Microsoft Support Engineer within
    > 2 business day is acceptable. Please note that each follow up response may
    > take approximately 2 business days as the support professional working with
    > you may need further investigation to reach the most efficient resolution.
    > The offering is not appropriate for situations that require urgent,
    > real-time or phone-based interactions. Issues of this nature are best
    > handled working with a dedicated Microsoft Support Engineer by contacting
    > Microsoft Customer Support Services (CSS) at
    > http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
    > ==================================================
    >
    >
    > .
    >
    Madison, Jan 14, 2010
    #6
  7. Hi Madison,

    I try to achieve your goal by using the client side function. Refer to this
    code:

    <%@ Page Language="vb" AutoEventWireup="false"
    CodeBehind="TestClientFunction.aspx.vb"
    Inherits="_44456996.TestClientFunction" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title></title>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:HiddenField ID="HF1" runat="server" />
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    <div style="border-style: solid; border-width: thin">
    Value1:<asp:TextBox ID="TextBox1" runat="server"
    onblur="TextBoxOnBlur()" onkeypress="TextBoxOnKeyPress()"
    AutoPostBack="false"></asp:TextBox>
    <asp:RegularExpressionValidator
    ID="RegularExpressionValidator1" runat="server" ErrorMessage="Please enter
    a Number"
    ControlToValidate="TextBox1"
    ValidationExpression="\d+"></asp:RegularExpressionValidator>
    <asp:Label ID="Label1" runat="server" ></asp:Label><br
    />
    Value2:<asp:TextBox ID="TextBox2" runat="server"
    onblur="TextBoxOnBlur()" onkeypress="TextBoxOnKeyPress()"
    AutoPostBack="false"></asp:TextBox>
    <asp:RegularExpressionValidator
    ID="RegularExpressionValidator2" runat="server" ErrorMessage="Please enter
    a Number"
    ControlToValidate="TextBox2"
    ValidationExpression="\d+"></asp:RegularExpressionValidator>
    <asp:Label ID="Label2" runat="server" ></asp:Label><br
    />
    Value3:<asp:TextBox ID="TextBox3" runat="server"
    onblur="TextBoxOnBlur()" onkeypress="TextBoxOnKeyPress()"
    AutoPostBack="false"></asp:TextBox>
    <asp:RegularExpressionValidator
    ID="RegularExpressionValidator3" runat="server" ErrorMessage="Please enter
    a Number"
    ControlToValidate="TextBox3"
    ValidationExpression="\d+"></asp:RegularExpressionValidator>
    <asp:Label ID="Label3" runat="server" ></asp:Label><br
    />
    Value4:<asp:TextBox ID="TextBox4" runat="server"
    onblur="TextBoxOnBlur()" onkeypress="TextBoxOnKeyPress()"
    AutoPostBack="false"></asp:TextBox>
    <asp:RegularExpressionValidator
    ID="RegularExpressionValidator4" runat="server" ErrorMessage="Please enter
    a Number"
    ControlToValidate="TextBox4"
    ValidationExpression="\d+"></asp:RegularExpressionValidator>
    <asp:Label ID="Label4" runat="server" ></asp:Label><br
    />
    Value5:<asp:TextBox ID="TextBox5" runat="server"
    onblur="TextBoxOnBlur()" onkeypress="TextBoxOnKeyPress()"
    AutoPostBack="false"></asp:TextBox>
    <asp:RegularExpressionValidator
    ID="RegularExpressionValidator5" runat="server" ErrorMessage="Please enter
    a Number"
    ControlToValidate="TextBox5"
    ValidationExpression="\d+"></asp:RegularExpressionValidator>
    <asp:Label ID="Label5" runat="server" ></asp:Label><br
    />
    SUM:<asp:TextBox ID="TextBox6" runat="server"
    AutoPostBack="true" ReadOnly="true"></asp:TextBox><br />
    </div>
    </ContentTemplate>
    </asp:UpdatePanel>
    </div>

    <script type="text/javascript">

    function TextBoxOnBlur(tb) {
    Sum();
    }

    function TextBoxOnKeyPress() {
    if (event.keyCode == 13) {
    Sum();
    }
    }

    function Sum() {

    if (!Page_IsValid) { return; }

    var value = new Array(5);
    var SumValue = 0;

    for (i = 1; i < 6; i++) {
    if ($get("TextBox" + i).value == "") {
    value = 0;
    } else {
    value = parseInt($get("TextBox" + i).value);
    }

    $get("Label" + i).innerHTML = value;
    SumValue = SumValue + value;
    }

    $get("TextBox6").value = SumValue.toString();
    }

    </script>

    </form>
    </body>
    </html>

    --
    Sincerely,

    Zhi-Qiang Ni

    Microsoft Online Support


    ==================================================
    Get notification to my posts through email? Please refer to
    http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

    MSDN Managed Newsgroup support offering is for non-urgent issues where an
    initial response from the community or a Microsoft Support Engineer within
    2 business day is acceptable. Please note that each follow up response may
    take approximately 2 business days as the support professional working with
    you may need further investigation to reach the most efficient resolution.
    The offering is not appropriate for situations that require urgent,
    real-time or phone-based interactions. Issues of this nature are best
    handled working with a dedicated Microsoft Support Engineer by contacting
    Microsoft Customer Support Services (CSS) at
    http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
    ==================================================

    --------------------
    | Thread-Topic: AJAX UpdatePanel lost focus
    | thread-index: AcqVLFe77QoByPq0RQOM9yTz7MzwkA==
    | X-WBNR-Posting-Host: 165.189.6.46
    | From: Madison <>
    | References: <>
    <>
    <>
    <>
    | Subject: RE: AJAX UpdatePanel lost focus
    | Date: Thu, 14 Jan 2010 07:15:01 -0800
    | Lines: 157
    | Message-ID: <>
    | MIME-Version: 1.0
    | Content-Type: text/plain;
    | charset="Utf-8"
    | Content-Transfer-Encoding: 7bit
    | X-Newsreader: Microsoft CDO for Windows 2000
    | Content-Class: urn:content-classes:message
    | Importance: normal
    | Priority: normal
    | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4325
    | Newsgroups: microsoft.public.dotnet.framework.aspnet
    | Path: TK2MSFTNGHUB02.phx.gbl
    | Xref: TK2MSFTNGHUB02.phx.gbl
    microsoft.public.dotnet.framework.aspnet:95775
    | NNTP-Posting-Host: tk2msftibfm01.phx.gbl 10.40.244.149
    | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
    |
    | Hi Zhi-Qiang Ni,
    |
    | Thank you for your sample codes. I created new page and pasted your
    sample
    | and run. It did not work for me. I still have the same problem when I try
    to
    | enter the values into the textbox.
    |
    |
    Zhi-Qiang Ni[MSFT], Jan 15, 2010
    #7
  8. Madison

    Madison Guest

    Hi Zhi-Qiang Ni,

    Thank you for your help. Your samples for using the client side give me the
    idea that I will switch my coding to use javascript for display the total
    check and validation. I still have the server side validation before saving
    to database. I thought that AJAX will help me with less coding but I guess
    not. I hope that the new release VS2010 will make the things better. Thank
    you again for your helps.


    "Zhi-Qiang Ni[MSFT]" wrote:

    > Hi Madison,
    >
    > I try to achieve your goal by using the client side function. Refer to this
    > code:
    >
    > <%@ Page Language="vb" AutoEventWireup="false"
    > CodeBehind="TestClientFunction.aspx.vb"
    > Inherits="_44456996.TestClientFunction" %>
    >
    > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    > <html xmlns="http://www.w3.org/1999/xhtml">
    > <head runat="server">
    > <title></title>
    > </head>
    > <body>
    > <form id="form1" runat="server">
    > <div>
    > <asp:ScriptManager ID="ScriptManager1" runat="server" />
    > <asp:HiddenField ID="HF1" runat="server" />
    > <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    > <ContentTemplate>
    > <div style="border-style: solid; border-width: thin">
    > Value1:<asp:TextBox ID="TextBox1" runat="server"
    > onblur="TextBoxOnBlur()" onkeypress="TextBoxOnKeyPress()"
    > AutoPostBack="false"></asp:TextBox>
    > <asp:RegularExpressionValidator
    > ID="RegularExpressionValidator1" runat="server" ErrorMessage="Please enter
    > a Number"
    > ControlToValidate="TextBox1"
    > ValidationExpression="\d+"></asp:RegularExpressionValidator>
    > <asp:Label ID="Label1" runat="server" ></asp:Label><br
    > />
    > Value2:<asp:TextBox ID="TextBox2" runat="server"
    > onblur="TextBoxOnBlur()" onkeypress="TextBoxOnKeyPress()"
    > AutoPostBack="false"></asp:TextBox>
    > <asp:RegularExpressionValidator
    > ID="RegularExpressionValidator2" runat="server" ErrorMessage="Please enter
    > a Number"
    > ControlToValidate="TextBox2"
    > ValidationExpression="\d+"></asp:RegularExpressionValidator>
    > <asp:Label ID="Label2" runat="server" ></asp:Label><br
    > />
    > Value3:<asp:TextBox ID="TextBox3" runat="server"
    > onblur="TextBoxOnBlur()" onkeypress="TextBoxOnKeyPress()"
    > AutoPostBack="false"></asp:TextBox>
    > <asp:RegularExpressionValidator
    > ID="RegularExpressionValidator3" runat="server" ErrorMessage="Please enter
    > a Number"
    > ControlToValidate="TextBox3"
    > ValidationExpression="\d+"></asp:RegularExpressionValidator>
    > <asp:Label ID="Label3" runat="server" ></asp:Label><br
    > />
    > Value4:<asp:TextBox ID="TextBox4" runat="server"
    > onblur="TextBoxOnBlur()" onkeypress="TextBoxOnKeyPress()"
    > AutoPostBack="false"></asp:TextBox>
    > <asp:RegularExpressionValidator
    > ID="RegularExpressionValidator4" runat="server" ErrorMessage="Please enter
    > a Number"
    > ControlToValidate="TextBox4"
    > ValidationExpression="\d+"></asp:RegularExpressionValidator>
    > <asp:Label ID="Label4" runat="server" ></asp:Label><br
    > />
    > Value5:<asp:TextBox ID="TextBox5" runat="server"
    > onblur="TextBoxOnBlur()" onkeypress="TextBoxOnKeyPress()"
    > AutoPostBack="false"></asp:TextBox>
    > <asp:RegularExpressionValidator
    > ID="RegularExpressionValidator5" runat="server" ErrorMessage="Please enter
    > a Number"
    > ControlToValidate="TextBox5"
    > ValidationExpression="\d+"></asp:RegularExpressionValidator>
    > <asp:Label ID="Label5" runat="server" ></asp:Label><br
    > />
    > SUM:<asp:TextBox ID="TextBox6" runat="server"
    > AutoPostBack="true" ReadOnly="true"></asp:TextBox><br />
    > </div>
    > </ContentTemplate>
    > </asp:UpdatePanel>
    > </div>
    >
    > <script type="text/javascript">
    >
    > function TextBoxOnBlur(tb) {
    > Sum();
    > }
    >
    > function TextBoxOnKeyPress() {
    > if (event.keyCode == 13) {
    > Sum();
    > }
    > }
    >
    > function Sum() {
    >
    > if (!Page_IsValid) { return; }
    >
    > var value = new Array(5);
    > var SumValue = 0;
    >
    > for (i = 1; i < 6; i++) {
    > if ($get("TextBox" + i).value == "") {
    > value = 0;
    > } else {
    > value = parseInt($get("TextBox" + i).value);
    > }
    >
    > $get("Label" + i).innerHTML = value;
    > SumValue = SumValue + value;
    > }
    >
    > $get("TextBox6").value = SumValue.toString();
    > }
    >
    > </script>
    >
    > </form>
    > </body>
    > </html>
    >
    > --
    > Sincerely,
    >
    > Zhi-Qiang Ni
    >
    > Microsoft Online Support
    >
    >
    > ==================================================
    > Get notification to my posts through email? Please refer to
    > http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.
    >
    > MSDN Managed Newsgroup support offering is for non-urgent issues where an
    > initial response from the community or a Microsoft Support Engineer within
    > 2 business day is acceptable. Please note that each follow up response may
    > take approximately 2 business days as the support professional working with
    > you may need further investigation to reach the most efficient resolution.
    > The offering is not appropriate for situations that require urgent,
    > real-time or phone-based interactions. Issues of this nature are best
    > handled working with a dedicated Microsoft Support Engineer by contacting
    > Microsoft Customer Support Services (CSS) at
    > http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
    > ==================================================
    >
    > --------------------
    > | Thread-Topic: AJAX UpdatePanel lost focus
    > | thread-index: AcqVLFe77QoByPq0RQOM9yTz7MzwkA==
    > | X-WBNR-Posting-Host: 165.189.6.46
    > | From: Madison <>
    > | References: <>
    > <>
    > <>
    > <>
    > | Subject: RE: AJAX UpdatePanel lost focus
    > | Date: Thu, 14 Jan 2010 07:15:01 -0800
    > | Lines: 157
    > | Message-ID: <>
    > | MIME-Version: 1.0
    > | Content-Type: text/plain;
    > | charset="Utf-8"
    > | Content-Transfer-Encoding: 7bit
    > | X-Newsreader: Microsoft CDO for Windows 2000
    > | Content-Class: urn:content-classes:message
    > | Importance: normal
    > | Priority: normal
    > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4325
    > | Newsgroups: microsoft.public.dotnet.framework.aspnet
    > | Path: TK2MSFTNGHUB02.phx.gbl
    > | Xref: TK2MSFTNGHUB02.phx.gbl
    > microsoft.public.dotnet.framework.aspnet:95775
    > | NNTP-Posting-Host: tk2msftibfm01.phx.gbl 10.40.244.149
    > | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
    > |
    > | Hi Zhi-Qiang Ni,
    > |
    > | Thank you for your sample codes. I created new page and pasted your
    > sample
    > | and run. It did not work for me. I still have the same problem when I try
    > to
    > | enter the values into the textbox.
    > |
    > |
    >
    > .
    >
    Madison, Jan 15, 2010
    #8
  9. Hi Madison,

    Thanks for your understanding of my supporting. The Ajax does help us
    enable the asynchronous post back and partial refresh of the page with less
    coding. However, the problem-we cannot stay the cursor in the client side
    TextBox after a PostBack - is a default behavior whether we use the
    UpdatePanel or not. I have explained the reason of it in my last reply. The
    page needs to reload after the first TextBox is on blur. So, it's easy to
    focus back to the first TextBox but hard to remember the client side click
    of the next TextBox.

    You can enjoy the other convenient and useful functions of the ASP.NET AJAX
    and AjaxControlToolkit:
    http://www.asp.net/ajax/
    http://www.asp.net/AJAX/AjaxControlToolkit/Samples/Default.aspx

    --
    Sincerely,

    Zhi-Qiang Ni

    Microsoft Online Support


    ==================================================
    Get notification to my posts through email? Please refer to
    http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

    MSDN Managed Newsgroup support offering is for non-urgent issues where an
    initial response from the community or a Microsoft Support Engineer within
    2 business day is acceptable. Please note that each follow up response may
    take approximately 2 business days as the support professional working with
    you may need further investigation to reach the most efficient resolution.
    The offering is not appropriate for situations that require urgent,
    real-time or phone-based interactions. Issues of this nature are best
    handled working with a dedicated Microsoft Support Engineer by contacting
    Microsoft Customer Support Services (CSS) at
    http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
    ==================================================

    --------------------
    | Thread-Topic: AJAX UpdatePanel lost focus
    | thread-index: AcqV+WwQXiU1Nt3nSCe1ILIw4+BHNg==
    | X-WBNR-Posting-Host: 165.189.6.46
    | From: Madison <>
    | References: <>
    <>
    <>
    <>
    <>
    <>
    | Subject: RE: AJAX UpdatePanel lost focus
    | Date: Fri, 15 Jan 2010 07:43:02 -0800
    | Lines: 196
    | Message-ID: <>
    | MIME-Version: 1.0
    | Content-Type: text/plain;
    | charset="Utf-8"
    | Content-Transfer-Encoding: 7bit
    | X-Newsreader: Microsoft CDO for Windows 2000
    | Content-Class: urn:content-classes:message
    | Importance: normal
    | Priority: normal
    | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4325
    | Newsgroups: microsoft.public.dotnet.framework.aspnet
    | Path: TK2MSFTNGHUB02.phx.gbl
    | Xref: TK2MSFTNGHUB02.phx.gbl
    microsoft.public.dotnet.framework.aspnet:95795
    | NNTP-Posting-Host: tk2msftibfm01.phx.gbl 10.40.244.149
    | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
    |
    | Hi Zhi-Qiang Ni,
    |
    | Thank you for your help. Your samples for using the client side give me
    the
    | idea that I will switch my coding to use javascript for display the total
    | check and validation. I still have the server side validation before
    saving
    | to database. I thought that AJAX will help me with less coding but I
    guess
    | not. I hope that the new release VS2010 will make the things better.
    Thank
    | you again for your helps.
    |
    |
    Zhi-Qiang Ni[MSFT], Jan 18, 2010
    #9
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. =?Utf-8?B?Qw==?=

    TextBox Focus Lost when using AJAX UpdatePanel

    =?Utf-8?B?Qw==?=, Mar 14, 2007, in forum: ASP .Net
    Replies:
    0
    Views:
    4,585
    =?Utf-8?B?Qw==?=
    Mar 14, 2007
  2. Replies:
    3
    Views:
    471
    Rob Meade
    Aug 8, 2007
  3. Replies:
    4
    Views:
    911
  4. Nathan Sokalski
    Replies:
    1
    Views:
    570
    miher
    Jun 15, 2009
  5. Roger
    Replies:
    3
    Views:
    306
Loading...

Share This Page