none
Button_Click на MasterPage не просиходит RRS feed

  • Вопрос

  • Имеется мастер страница на ней два ДИВА одинаковые

    1. Для отправки сообщения 

    2. Для заказа звонка - обратный звонок

    Проблема в том что не происходит события по щелчку на кнопке Заказать обратный звонок,

    Код расположен на мастер странице и работает со всех страниц сайта 

    1. Для отправки сообщения - без проблем 

    2. Для заказа звонка - обратный звонок - нет события по щелчку на кнопке

    вот код мастер страницы 

    <%@ Master Language="C#" AutoEventWireup="true" CodeFile="SiteMaster.master.cs" Inherits="SiteMaster" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script>
            $(document).ready(function () {
                $("#imgButtonCallBack").click(function () {
                    $("#divCallMe").slideToggle("slow");
                    return false;
                });
            });
        </script>
      
    </head>
    <body oncopy="return false;">
        <form id="form1" runat="server">
            <asp:ScriptManager ID="sm1" runat="server" EnableScriptGlobalization="True" EnableScriptLocalization="True" EnablePartialRendering="true"  />
            <div id="buttonCallMe">
                <span class="headerContact">
                    <asp:ImageButton ID="imgButtonCallBack" runat="server" ToolTip="Обратный звонок" CssClass="footerIMGcb" ImageUrl="~/App_Themes/custom/images/callbackV.png" />
                </span>
            </div>
                <div id="divCallMe" class="detail">
                    <span class="pnlPopupSpanHeader">Cообщите Ваш телефон</span>
                    <br />
                    <span class="pnlPopupSpanHeader">мы обязательно Вам перезвоним!</span>
                    <div class="divCall">
                        <asp:UpdatePanel ID="UpdatePanel1" runat="server"   UpdateMode="Conditional">
                            <ContentTemplate>
                                <div class="divCall">
                                    <span class="pnlPopupSpan">Как Вас зовут:</span><br />
                                    <asp:TextBox ID="txtName2" runat="server" />
                                    <ajaxCT:FilteredTextBoxExtender ID="ftbe2" runat="server" TargetControlID="txtName2" ValidChars="АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM" />
                                    <br />
                                    <span class="pnlPopupSpan">Номер телефона:</span><br />
                                    <asp:TextBox ID="txtText3" runat="server" />
                                    <ajaxCT:FilteredTextBoxExtender ID="ftbe3" runat="server" TargetControlID="txtText3" ValidChars="1234567890+" />
                                    <br />
                                    <span class="pnlPopupSpan">E-mail:</span><br />
                                    <asp:TextBox ID="txtEmail2" runat="server" />
                                    <asp:RegularExpressionValidator ID="regtxtPrimaryEmail2" runat="server" ControlToValidate="txtEmail2"
                                        Display="Dynamic" CssClass="cssValMe" ToolTip="Не верный формат" ErrorMessage="Не верный формат"
                                        ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
                                    <div style="width: 60%; margin-top: 15px; margin-bottom: 25px;">
                                        <div style="width: 49%; float: left; ; text-align: center;">
                                            <asp:Image ID="imgCaptcha2" runat="server" />
                                        </div>
                                        <div style="width: 50%; float: right;">
                                            <div style="width: 48%; float: left; text-align: center; top: 3px;">
                                                <asp:Button ID="btnRef2" runat="server" ToolTip="Обновить" Style="background-image: url(../../App_Themes/custom/images/refres.png); background-repeat: no-repeat;"
                                                    BackColor="Transparent" Height="30px" Width="30px" ValidationGroup="Captcha2" OnClick="btnRef2_Click" />
                                            </div>
                                            <div style="width: 49%; float: right; ; text-align: center;">
                                                <asp:TextBox ID="txtCaptcha2" runat="server" MaxLength="6" Width="40px" />
                                            </div>
                                        </div>
                                    </div>
                                    <div style="margin: 0 auto; text-align: center;">
                                        <asp:Button ID="bnSend" runat="server" ToolTip="Обратный звонок" Style="background-image: url(../../App_Themes/custom/images/callback1.png); background-repeat: no-repeat;" BackColor="Transparent" Height="35px" Width="383px" OnClick="bnSend_Click" />
                                        <asp:Label ID="lblMessageStatus2" runat="server" CssClass="cssVal" Visible="false" />
                                    </div>
                                </div>
                            </ContentTemplate>
                        </asp:UpdatePanel>
                    </div>
                </div>
            <div id="button">
                <span class="buttonSend">Отправить сообщение
                </span>
                <div id="s_panel">
                    Оставьте свое сообщение в этой форме, и мы получим его на e-mail и обязательно ответим!
                    <asp:UpdatePanel ID="unplForm" runat="server"  UpdateMode="Conditional">
                        <ContentTemplate>
                            <table>
                                <tr>
                                    <td>Имя:</td>
                                    <td>
                                        <asp:TextBox ID="txtName" runat="server" />
                                        <asp:RequiredFieldValidator ID="rfvO" runat="server" ControlToValidate="txtName" ErrorMessage="Сообщите Ваше имя" Display="Dynamic" CssClass="cssVal" ToolTip="Сообщите Ваше имя" ValidationGroup="registration" />
                                        <ajaxCT:FilteredTextBoxExtender ID="ftbeO" runat="server" TargetControlID="txtName" ValidChars="АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM" />
                                    </td>
                                </tr>
                                <tr>
                                    <td>E-mail:</td>
                                    <td>
                                        <asp:TextBox ID="txtEmail" runat="server" />
                                        <asp:RegularExpressionValidator ID="regtxtPrimaryEmail" runat="server" ControlToValidate="txtEmail"
                                            Display="Dynamic" CssClass="cssVal" ToolTip="Не верный формат" ErrorMessage="Не верный формат"
                                            ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
                                        <asp:RequiredFieldValidator ID="rfvEmail" runat="server" ControlToValidate="txtEmail" ErrorMessage="Укажите Ваш е-майл" Display="Dynamic" CssClass="cssVal" ToolTip="Укажите Ваш е-майл" />
                                    </td>
                                </tr>
                                <tr>
                                    <td>Текст:</td>
                                    <td>
                                        <asp:TextBox ID="txtText" runat="server" TextMode="MultiLine" Height="120px" Width="180px" />
                                        <asp:RequiredFieldValidator ID="rfvText" runat="server" ControlToValidate="txtText" ErrorMessage="Укажите Текст сообщения" Display="Dynamic" CssClass="cssVal" ToolTip="Укажите Текст сообщения" />
                                        <ajaxCT:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server" TargetControlID="txtText" ValidChars="АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM 1234567890 - " />
                                    </td>
                                </tr>
                                <tr>
                                    <td>Защитный код:</td>
                                    <td>
                                        <div style="width: 100%;">
                                            <div style="width: 49%; float: left; ; text-align: center;">
                                                <asp:Image ID="imgCaptcha" runat="server" />
                                            </div>
                                            <div style="width: 50%; float: right;">
                                                <div style="width: 48%; float: left; text-align: center; top: 3px;">
                                                    <asp:Button ID="btnRef" runat="server" ToolTip="Обновить" Style="background-image: url(../../App_Themes/custom/images/refres.png); background-repeat: no-repeat;"
                                                        BackColor="Transparent" Height="30px" Width="30px" ValidationGroup="Captcha"
                                                        OnClick="btnRef_Click" />
                                                </div>
                                                <div style="width: 49%; float: right; ; text-align: center;">
                                                    <asp:TextBox ID="txtCaptcha" runat="server" MaxLength="6" Width="40px" />
                                                </div>
                                            </div>
                                        </div>
                                    </td>
                                </tr>
                            </table>
                            <br />
                            <asp:Button ID="btnSend" runat="server" ToolTip="Отправить"
                                Style="background-image: url(../../App_Themes/custom/images/sendMessag.png); background-repeat: no-repeat;"
                                BackColor="Transparent" Height="52px" Width="59px" OnClick="btnSend_Click" />
                            <asp:Label ID="lblMessageStatus" runat="server" CssClass="cssVal" Visible="false" />
                        </ContentTemplate>
                    </asp:UpdatePanel>
                </div>
            </div>
        </form>
    </body>
    </html>
    

    и код файла - SiteMaster.master.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using DSTableAdapters;
    using System.Drawing;
    using AjaxControlToolkit;
    
    public partial class SiteMaster : System.Web.UI.MasterPage
    {
        tbQuestionTableAdapter qTA = new tbQuestionTableAdapter();
        protected void Page_Load(object sender, EventArgs e)
        {
            sm1.RegisterAsyncPostBackControl(btnSend);
            sm1.RegisterAsyncPostBackControl(bnSend); 
            imgCaptcha.ImageUrl = "~/Captcha.aspx?rnd=" + Guid.NewGuid().ToString();
            imgCaptcha2.ImageUrl = "~/Captcha2.aspx?rnd=" + Guid.NewGuid().ToString();
        }
        public void btnRef_Click(object sender, EventArgs e)
        {
            imgCaptcha.ImageUrl = "~/Captcha.aspx?rnd=" + Guid.NewGuid().ToString();
        }
        public void btnSend_Click(object sender, EventArgs e)
        {
            if (Session["Code"].ToString() == txtCaptcha.Text)
            {
                try
                {
                    qTA.InsertQuery(txtName.Text, txtEmail.Text, txtText.Text);
                    //отправка письма
                    NameSpaceUdove.Func.MailSend(txtEmail.Text.ToString(), "info@idealhome.biz", "Сайт Ideal Home", "Поступило сообщение <a href=http://idealhome.biz/Admin/Default.aspx/>Прочесть</a>");
                    txtName.Text = "";
                    txtEmail.Text = "";
                    txtText.Text = "";
                    lblMessageStatus.Visible = true;
                    lblMessageStatus.ForeColor = System.Drawing.Color.Red;
                    lblMessageStatus.Text = "Ваше сообщение отправлено. В ближайшее время мы с Вами свяжемся.";
                    txtCaptcha.Text = "";
                }
                catch
                {
                    lblMessageStatus.Visible = true;
                    lblMessageStatus.ForeColor = System.Drawing.Color.Red;
                    lblMessageStatus.Text = "Ошибка. попробуйте ещё раз";
                }
            }
            else
            {
                lblMessageStatus.Visible = true;
                lblMessageStatus.ForeColor = System.Drawing.Color.Red;
                lblMessageStatus.Text = "Неверно указан защитный код";
            }
        }
        public void btnRef2_Click(object sender, EventArgs e)
        {
            imgCaptcha2.ImageUrl = "~/Captcha2.aspx?rnd=" + Guid.NewGuid().ToString();
        }
    
        public void bnSend_Click(object sender, EventArgs e)
        {
            if (Session["Code2"].ToString() == txtCaptcha2.Text)
            {
                try
                {
                    qTA.InsertQuery(txtName2.Text, txtEmail2.Text, txtText3.Text);
                    //отправка письма
                    NameSpaceUdove.Func.MailSend(txtEmail2.Text.ToString(), "info@idealhome.biz", "Сайт Ideal Home", "Поступило сообщение <a href=http://idealhome.biz/Admin/Default.aspx/>Прочесть</a>");
                    txtName2.Text = "";
                    txtEmail2.Text = "";
                    txtText3.Text = "";
                    lblMessageStatus2.Visible = true;
                    lblMessageStatus2.ForeColor = System.Drawing.Color.Red;
                    lblMessageStatus2.Text = "Ваше сообщение отправлено. В ближайшее время мы с Вами свяжемся.";
                    txtCaptcha2.Text = "";
                }
                catch
                {
                    lblMessageStatus2.Visible = true;
                    lblMessageStatus2.ForeColor = System.Drawing.Color.Red;
                    lblMessageStatus2.Text = "Ошибка. попробуйте ещё раз";
                }
            }
            else
            {
                lblMessageStatus2.Visible = true;
                lblMessageStatus2.ForeColor = System.Drawing.Color.Red;
                lblMessageStatus2.Text = "Неверно указан защитный код";
            }
        }
    }

    не работает это событие - 

    public void bnSend_Click(object sender, EventArgs e)

    Прошу Вашей помощи

    С уважением Юрий

    P.S. сайт - http://idealhome.biz/

    1 марта 2014 г. 13:24

Ответы

  • Код был расписан более подробно сейчас он в таком виде 

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using DSTableAdapters;
    using System.Drawing;
    using Udove;
    
    
    public partial class SiteMaster : System.Web.UI.MasterPage
    {
        tbQuestionTableAdapter qTA = new tbQuestionTableAdapter();
        protected void Page_Load(object sender, EventArgs e)
        {
            sm1.RegisterAsyncPostBackControl(btnSend);
            sm1.RegisterAsyncPostBackControl(bnSend); 
            imgCaptcha.ImageUrl = "~/Captcha.aspx?rnd=" + Guid.NewGuid().ToString();
            imgCaptcha2.ImageUrl = "~/Captcha.aspx?rnd=" + Guid.NewGuid().ToString();
        }
        public void bClick(object sender, EventArgs e)
        {
            switch (((Control)sender).ID)
            {
                case "imgCaptcha":
                    imgCaptcha.ImageUrl = "~/Captcha.aspx?rnd=" + Guid.NewGuid().ToString();
                    break;
                case "imgCaptcha2":
                    imgCaptcha2.ImageUrl = "~/Captcha.aspx?rnd=" + Guid.NewGuid().ToString();
                    break;
                case "btnSend":
                    if (Session["Code"].ToString() == txtCaptcha.Text)
                    {
                        try
                        {
                            if (txtName.Text.Length > 0)
                            {
    
                                if (txtEmail.Text.Length > 0)
                                {
    
                                    if (txtText.Text.Length > 0)
                                    {
    
                                        qTA.InsertQuery(txtName.Text, txtEmail.Text, txtText.Text);
                                        //отправка письма
                                        NameSpaceUdove.Func.MailSend(txtEmail.Text.ToString(), "info@idealhome.biz", "Сайт Ideal Home", "Поступило сообщение <a href=http://idealhome.biz/Admin/Default.aspx/>Прочесть</a>");
                                        txtName.Text = "";
                                        txtEmail.Text = "";
                                        txtText.Text = "";
                                        krakoss.ShowMessage("Ваше сообщение отправлено. В ближайшее время мы с Вами свяжемся");
                                        txtCaptcha.Text = "";
    
                                    }
                                    else
                                    {
                                        krakoss.ShowMessage("Не введен текст сообщения");
                                    }
                                }
                                else
                                {
                                    krakoss.ShowMessage("Вы не указали Email");
                                }
                            }
                            else
                            {
                                krakoss.ShowMessage("Вы не указали имя");
                            }
                        }
                        catch
                        {
                            krakoss.ShowMessage("Ошибка - попробуйте ещё раз");
                        }
                    }
                    else
                    {
                        krakoss.ShowMessage("Неверно указан защитный код для отправки письма");
                    }
                    break;
                case "bnSend":
                    if (Session["Code"].ToString() == txtCaptcha2.Text)
                    {
                        try
                        {
                            if (txtName2.Text.Length > 0)
                            {
    
                                if (txtEmail2.Text.Length > 0)
                                {
    
                                    if (txtText3.Text.Length > 0)
                                    {
    
                                        qTA.InsertQuery(txtName2.Text, txtEmail2.Text, txtText3.Text);
                                        //отправка письма
                                        NameSpaceUdove.Func.MailSend(txtEmail2.Text.ToString(), "info@idealhome.biz", "Сайт Ideal Home", "Поступило сообщение <a href=http://idealhome.biz/Admin/Default.aspx/>Прочесть</a>");
                                        txtName2.Text = "";
                                        txtEmail2.Text = "";
                                        txtText3.Text = "";
                                        krakoss.ShowMessage("Ваше заявка отправлена. В ближайшее время Вам перезвонят");
                                        txtCaptcha2.Text = "";
    
                                    }
                                    else
                                    {
                                        krakoss.ShowMessage("Не введен номер телефона");
                                    }
                                }
                                else
                                {
                                    krakoss.ShowMessage("Вы не указали Email");
                                }
                            }
                            else
                            {
                                krakoss.ShowMessage("Вы не указали имя");
                            }
                            
                        }
                        catch
                        {
                            krakoss.ShowMessage("Ошибка - попробуйте ещё раз");
                        }
                    }
                    else
                    {
                        krakoss.ShowMessage("Неверно указан защитный код для заказа обратного звонка");
                    }
                    break;
            }
        }
    
    }

    и на странице все события у кнопок - OnClick="bClick" 

    за 

    return false;

    большое спасибо - это мой недочет не доглядел 

    и самое главное после случайного просмотра  

    я понял что необходимо изменить свойство CausesValidation кнопки bnSend (отправки заказа на звонок) на false

    <asp:Button ID="bnSend" CausesValidation="false" />

    Все тема закрыта  
    • Помечено в качестве ответа krakoss 2 марта 2014 г. 2:15
    2 марта 2014 г. 2:14

Все ответы

  • Ну и каша у вас в коде. Почему в методе
    $("#imgButtonCallBack").click(function () {
                    $("#divCallMe").slideToggle("slow");
                    return false;
                });

    передаёте false, попробуйте изменить.

    Сделаем содержимое сообщества лучше, вместе!

    1 марта 2014 г. 16:18
    Модератор
  • Код был расписан более подробно сейчас он в таком виде 

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using DSTableAdapters;
    using System.Drawing;
    using Udove;
    
    
    public partial class SiteMaster : System.Web.UI.MasterPage
    {
        tbQuestionTableAdapter qTA = new tbQuestionTableAdapter();
        protected void Page_Load(object sender, EventArgs e)
        {
            sm1.RegisterAsyncPostBackControl(btnSend);
            sm1.RegisterAsyncPostBackControl(bnSend); 
            imgCaptcha.ImageUrl = "~/Captcha.aspx?rnd=" + Guid.NewGuid().ToString();
            imgCaptcha2.ImageUrl = "~/Captcha.aspx?rnd=" + Guid.NewGuid().ToString();
        }
        public void bClick(object sender, EventArgs e)
        {
            switch (((Control)sender).ID)
            {
                case "imgCaptcha":
                    imgCaptcha.ImageUrl = "~/Captcha.aspx?rnd=" + Guid.NewGuid().ToString();
                    break;
                case "imgCaptcha2":
                    imgCaptcha2.ImageUrl = "~/Captcha.aspx?rnd=" + Guid.NewGuid().ToString();
                    break;
                case "btnSend":
                    if (Session["Code"].ToString() == txtCaptcha.Text)
                    {
                        try
                        {
                            if (txtName.Text.Length > 0)
                            {
    
                                if (txtEmail.Text.Length > 0)
                                {
    
                                    if (txtText.Text.Length > 0)
                                    {
    
                                        qTA.InsertQuery(txtName.Text, txtEmail.Text, txtText.Text);
                                        //отправка письма
                                        NameSpaceUdove.Func.MailSend(txtEmail.Text.ToString(), "info@idealhome.biz", "Сайт Ideal Home", "Поступило сообщение <a href=http://idealhome.biz/Admin/Default.aspx/>Прочесть</a>");
                                        txtName.Text = "";
                                        txtEmail.Text = "";
                                        txtText.Text = "";
                                        krakoss.ShowMessage("Ваше сообщение отправлено. В ближайшее время мы с Вами свяжемся");
                                        txtCaptcha.Text = "";
    
                                    }
                                    else
                                    {
                                        krakoss.ShowMessage("Не введен текст сообщения");
                                    }
                                }
                                else
                                {
                                    krakoss.ShowMessage("Вы не указали Email");
                                }
                            }
                            else
                            {
                                krakoss.ShowMessage("Вы не указали имя");
                            }
                        }
                        catch
                        {
                            krakoss.ShowMessage("Ошибка - попробуйте ещё раз");
                        }
                    }
                    else
                    {
                        krakoss.ShowMessage("Неверно указан защитный код для отправки письма");
                    }
                    break;
                case "bnSend":
                    if (Session["Code"].ToString() == txtCaptcha2.Text)
                    {
                        try
                        {
                            if (txtName2.Text.Length > 0)
                            {
    
                                if (txtEmail2.Text.Length > 0)
                                {
    
                                    if (txtText3.Text.Length > 0)
                                    {
    
                                        qTA.InsertQuery(txtName2.Text, txtEmail2.Text, txtText3.Text);
                                        //отправка письма
                                        NameSpaceUdove.Func.MailSend(txtEmail2.Text.ToString(), "info@idealhome.biz", "Сайт Ideal Home", "Поступило сообщение <a href=http://idealhome.biz/Admin/Default.aspx/>Прочесть</a>");
                                        txtName2.Text = "";
                                        txtEmail2.Text = "";
                                        txtText3.Text = "";
                                        krakoss.ShowMessage("Ваше заявка отправлена. В ближайшее время Вам перезвонят");
                                        txtCaptcha2.Text = "";
    
                                    }
                                    else
                                    {
                                        krakoss.ShowMessage("Не введен номер телефона");
                                    }
                                }
                                else
                                {
                                    krakoss.ShowMessage("Вы не указали Email");
                                }
                            }
                            else
                            {
                                krakoss.ShowMessage("Вы не указали имя");
                            }
                            
                        }
                        catch
                        {
                            krakoss.ShowMessage("Ошибка - попробуйте ещё раз");
                        }
                    }
                    else
                    {
                        krakoss.ShowMessage("Неверно указан защитный код для заказа обратного звонка");
                    }
                    break;
            }
        }
    
    }

    и на странице все события у кнопок - OnClick="bClick" 

    за 

    return false;

    большое спасибо - это мой недочет не доглядел 

    и самое главное после случайного просмотра  

    я понял что необходимо изменить свойство CausesValidation кнопки bnSend (отправки заказа на звонок) на false

    <asp:Button ID="bnSend" CausesValidation="false" />

    Все тема закрыта  
    • Помечено в качестве ответа krakoss 2 марта 2014 г. 2:15
    2 марта 2014 г. 2:14