This web form is inherited from a master page. The ajax script manager and the toolkit is registered on the master page. The web form has a grid view with several ItemTemplates as shown below. The problem is that when textbox ( tbxNewSST with maskedEditExtender) receives focus the OnTextChanged events (footer_SSTTextChanged) gets fired although it is supposed to fire only when the text is changed in the textbox.
===============
master page
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
</asp:UpdatePanel>
</asp:ContentPlaceHolder>
</div>
WebForm
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site1.Master" CodeBehind="DataEntry.aspx.vb" Inherits="partialpostback.DataEntry" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div id = "dvGrid" style ="padding:10px;width:550px">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="gvLog" runat="server" Width="550px"
AutoGenerateColumns="false" Font-Names="Arial"
Font-Size="11pt" AlternatingRowStyle-BackColor="#C2D69B"
HeaderStyle-BackColor="green" AllowPaging="true" ShowFooter="true" ShowHeader="false"
OnPageIndexChanging="OnPaging" OnRowEditing="EditCustomer"
OnRowUpdating="UpdateCustomer" OnRowCancelingEdit="CancelEdit"
PageSize="10">
<Columns>
<asp:TemplateField HeaderStyle-Width="1%">
<EditItemTemplate>
<asp:TextBox ID="txtBatchVolume" Width="70px" runat="server" Text='<%# Eval("BatchVolume")%>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblBatchVolume" Width="70px" runat="server" Text='<%# Eval("BatchVolume")%>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtNewBatchVolume" Width="70px" runat="server" AutoPostBack="True" OnTextChanged="footer_Volume_TextChanged"></asp:TextBox>
</FooterTemplate>
<HeaderStyle Width="1%" />
</asp:TemplateField>
<asp:TemplateField HeaderStyle-Width="1%">
<EditItemTemplate>
<asp:TextBox ID="tbxSST" Width="130px" runat="server" Text='<%# Eval("settlingStartTime")%>' AutoPostBack="True" OnTextChanged="edit_SSTTextChanged"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblSST" Width="130px" runat="server" Text='<%# Eval("settlingStartTime")%>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="tbxNewSST" Width="130px" runat="server" AutoPostBack="True" OnTextChanged="footer_SSTTextChanged"></asp:TextBox>
<ajaxToolkit:MaskedEditExtender ID="tbxNewSST_MEE" runat="server" TargetControlID="tbxNewSST" Mask="99/99/9999 99:99" />
</FooterTemplate>
</asp:TemplateField>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="gvLog" />
<%-- <asp:AsyncPostBackTrigger ControlID ="txtEquipmentID" EventName ="txtEquipmentID_TextChanged" />--%>
</Triggers>
</asp:UpdatePanel>
</div>
</asp:Content>
code behind
Protected Sub footer_Volume_TextChanged(sender As Object, e As EventArgs)
Dim gvr As GridViewRow = DirectCast(DirectCast(sender, TextBox).Parent.Parent, GridViewRow)
End Sub
Protected Sub footer_SSTTextChanged(sender As Object, e As EventArgs)
Dim gvr As GridViewRow = DirectCast(DirectCast(sender, TextBox).Parent.Parent, GridViewRow)
' set focus on next item
'Dim tbxFocus As TextBox = gvr.FindControl(_newSSRTG)
'tbxFocus.Focus()
End Sub
===============