Текст метки не обновляется при нажатии кнопки ОТПРАВИТЬ - ASP.NET - PullRequest
0 голосов
/ 04 августа 2020

У меня есть страница контактов, на которой я отправляю письмо при нажатии кнопки ОТПРАВИТЬ, все работает нормально, но кнопка не была отключена в конце кода, а текст метки не обновлялся для отражения изменений. Я полностью уверен, какая метка не обновляется, так как код выполняется нормально.

Это главная страница:

image

Эта дочерняя страница

<%@ Page Title="" Language="C#" MasterPageFile="~/MIMO.Master" AutoEventWireup="true" CodeBehind="Contact.aspx.cs" Inherits="MIMO_WEB_R02.ContactUs" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <script src="JsValidation.js"></script>
    <style type="text/css">
        .auto-style1 {
            width: 181px;
        }
    </style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Body" runat="server">

     <div class ="Page_Content">
     <h3>CONTACT US</h3>
     <p>Thanks for visiting our website for any information get in touch</p>
            
    <fieldset style="Width:40%">
        <Legend>Contact Us</legend><table id="ContactDetails">
     <tr><td style="vertical-align:top">Name</td><td class="auto-style1"><asp:TextBox ID="SenderName" Placeholder="Name" runat="server" Width="200px"/></td>
      <td style="vertical-align:top"><asp:RequiredFieldValidator ID="NameID" ControlToValidate="SenderName" ValidationGroup="groupName" runat="server" ErrorMessage="Name is required" ForeColor="Red" Font-Size="Small"></asp:RequiredFieldValidator></td></tr>
     <tr><td style="vertical-align:top">Surname</td><td class="auto-style1"><asp:TextBox ID="SenderSurname" Placeholder="Surname" runat="server" Width="200px"/></td>
         <td style="vertical-align:top"><asp:RequiredFieldValidator ID="SurnameID" ControlToValidate="SenderSurname" ValidationGroup="groupName" runat="server" ErrorMessage="Last Name is required" ForeColor="Red" Font-Size="Small"></asp:RequiredFieldValidator></td></tr>
     <tr><td style="vertical-align:top">Title</td><td class="auto-style1"><asp:TextBox ID="SenderTitle" Placeholder="Title" runat="server" Width="200px"/></td>
         <td style="vertical-align:top"><asp:RequiredFieldValidator ID="TitleVal" ControlToValidate="SenderTitle" ValidationGroup="groupName" runat="server" ErrorMessage="Title is required" ForeColor="Red" Font-Size="Small"></asp:RequiredFieldValidator>
         </td></tr>
     <tr><td style="vertical-align:top">Company</td><td class="auto-style1"><asp:TextBox ID="SenderCompany" Placeholder="Company" runat="server" Width="200px"/></td>
         <td style="vertical-align:top"><asp:RequiredFieldValidator ID="CompanyID" ControlToValidate="SenderCompany" ValidationGroup="groupName" runat="server" ErrorMessage="Company Name is required" ForeColor="Red" Font-Size="Small"></asp:RequiredFieldValidator></td></tr>
     <tr><td style="vertical-align:top">Email</td><td class="auto-style1"><asp:TextBox ID="SenderEmail" Placeholder="Email" runat="server" Width="200px"/></td>
         <td style="vertical-align:top"><asp:RequiredFieldValidator ID="EmailID" ControlToValidate="SenderEmail" ValidationGroup="groupName" runat="server" ErrorMessage="Email is required" ForeColor="Red" Display="Dynamic" Font-Size="Small">
      </asp:RequiredFieldValidator></td></tr>
     <tr><td style="vertical-align:top">Telephone (Optional)</td><td class="auto-style1"><asp:TextBox ID="SenderTelephone" Placeholder="Telephone" runat="server" Width="200px"/></td>
         <td style="vertical-align:top"><asp:RequiredFieldValidator ID="TelephoneID" ControlToValidate="SenderTelephone" ValidationGroup="groupName" runat="server" ErrorMessage="Telephone is required" ForeColor="Red" Font-Size="Small">
      </asp:RequiredFieldValidator></td></tr>
        <tr><td style="vertical-align:top">Subject</td><td class="auto-style1"><asp:TextBox ID="SenderSubject" Placeholder="Subject" runat="server" Width="200px"/></td>
         <td style="vertical-align:top"><asp:RequiredFieldValidator ID="SubjectID" ControlToValidate="SenderSubject" ValidationGroup="groupName" runat="server" ErrorMessage="Subject is required" ForeColor="Red" Font-Size="Small">
      </asp:RequiredFieldValidator></td></tr>
     <tr><td style="vertical-align:top">Message Body</td><td class="auto-style1"><asp:TextBox ID="TxtComments" Placeholder="Email" runat="server" TextMode="MultiLine" CssClass="MultiLineTextBox" Width="200px" Height="87px"/>
         </td><td style="vertical-align:top"><asp:RequiredFieldValidator ID="Comments" ControlToValidate="TxtComments" ValidationGroup="groupName" runat="server" ErrorMessage="Comments are required" ForeColor="Red" Font-Size="Small">
      </asp:RequiredFieldValidator></td></tr>
        <tr><td></td><td class="auto-style1"><asp:Button ID="Button1" runat="server" OnClientClick="ClientSideClick(this);" Text="SEND" Width="78px" OnClick="Button1_Click"/>
         </td></tr>
        <tr>
            <td colspan="3"><asp:Label ID="Label1" runat="server" Text="This is some label text here"></asp:Label></td>
        </tr>    
     </table>
        
      </fieldset>
     </div>
  
</asp:Content>

Это C# код сервера

protected void Button1_Click(object sender, EventArgs e)
    {
        String[] ParamToPass = new String[9];
        String ConnectionString = "DESKTOP-9V04GKP";
        try
        {
        ParamToPass[0] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
        ParamToPass[1] = SenderName.Text;
        ParamToPass[2] = SenderSurname.Text;
        ParamToPass[3] = SenderTitle.Text;
        ParamToPass[4] = SenderCompany.Text;
        ParamToPass[5] = SenderEmail.Text;
        ParamToPass[6] = SenderTelephone.Text;
        ParamToPass[7] = SenderSubject.Text;
        ParamToPass[8] = TxtComments.Text;

            //MailAddress to = new MailAddress("mail1");
            //MailAddress from = new MailAddress("mail2");

            //MailMessage message = new MailMessage(from, to);
            //message.Subject = SenderSubject.Text.ToString();
            //message.Body = TxtComments.Text.ToString();

            //SmtpClient client = new SmtpClient("smtp.gmail.com", 587)
            //{
            //    Credentials = new NetworkCredential("credentials go here"),
            //    EnableSsl = true

            //};
            //// code in brackets above needed if authentication required


            //client.Send(message);

            Label1.Text = "Thank you for your message we will get back at you as soon as possible";
            Button1.Enabled = false;
            SQL_Insert(ConnectionString, ParamToPass); 
        }
        catch (SmtpException ex)
        {
            Label1.Text = "We are experiencing technical difficulty please come back at another time";
            Button1.Enabled = true;
        }
        
    }

1 Ответ

0 голосов
/ 04 августа 2020

Поскольку все кнопки asp. net имеют тип «отправить», то после нажатия кнопки страница обновляется и генерирует PostBack.

У вас есть два варианта решения этой проблемы.

Вариант 1 - «preventDefault ()» на вашей кнопке:

$("#Button1").click(function (e) {    
 e.preventDefault();
}

Вы можете добавить e.preventDefault(); к существующей функции ClientSideClick, которую вы не включили в свой вопрос , поэтому я не могу изменить ваш текущий код.

Вариант 2 - изменить OnClientClick с:

<asp:Button ID="Button1" runat="server" OnClientClick="ClientSideClick(this)" Text="SEND" Width="78px" OnClick="Button1_Click"/>

Кому:

<asp:Button ID="Button1" runat="server" OnClientClick="ClientSideClick(this); return false;" Text="SEND" Width="78px" OnClick="Button1_Click"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...