protected void btnProductChanged_Clicked(object sender, System.EventArgs e)
        {
            try
            {
                DbProviderFactory dbf = DbProviderFactories.GetFactory();
                using (IDbConnection con = dbf.CreateConnection())
                {
                    string sSQL;
                    sSQL = "select *                       " + ControlChars.CrLf
                           + "  from vwPRODUCTS_FromTemplate " + ControlChars.CrLf
                           + " where 1 = 1                   " + ControlChars.CrLf;
                    using (IDbCommand cmd = con.CreateCommand())
                    {
                        cmd.CommandText = sSQL;
                        Guid gPRODUCT_TEMPLATE_ID = new DynamicControl(this, "PRODUCT_TEMPLATE_ID").ID;
                        Sql.AppendParameter(cmd, gPRODUCT_TEMPLATE_ID, "ID", false);
                        con.Open();

                        if (bDebug)
                        {
                            RegisterClientScriptBlock("SQLCode", Sql.ClientScriptBlock(cmd));
                        }

                        using (IDataReader rdr = cmd.ExecuteReader(CommandBehavior.SingleRow))
                        {
                            if (rdr.Read())
                            {
                                ctlModuleHeader.Title = Sql.ToString(rdr["NAME"]);
                                SetPageTitle(L10n.Term(".moduleList." + m_sMODULE) + " - " + ctlModuleHeader.Title);
                                Utils.UpdateTracker(Page, m_sMODULE, gID, ctlModuleHeader.Title);
                                ViewState["ctlModuleHeader.Title"] = ctlModuleHeader.Title;

                                SplendidDynamic.SetEditViewFields(this, m_sMODULE + ".EditView", rdr, GetL10n(), GetT10n());
                                SplendidDynamic.SetEditViewFields(this, m_sMODULE + ".CostView", rdr, GetL10n(), GetT10n());
                                SplendidDynamic.SetEditViewFields(this, m_sMODULE + ".MftView", rdr, GetL10n(), GetT10n());
                                // 07/05/2006 Paul.  The Product Name should be editable.
                                TextBox txtNAME = FindControl("NAME") as TextBox;
                                if (txtNAME != null)
                                {
                                    txtNAME.ReadOnly = false;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                SplendidError.SystemError(new StackTrace(true).GetFrame(0), ex);
                ctlEditButtons.ErrorText = ex.Message;
            }
        }