Как перестать перезагружать страницу при нажатии на кнопку? - PullRequest
1 голос
/ 26 января 2012

У меня есть веб-сайт asp.net, в котором есть некоторые вычисления для кнопки.Когда я нажимаю кнопку, мой расчет работает нормально, но сначала страница обновляется, а затем расчет отображается на этикетке.Я хочу сделать этот расчет выглядит на этикетке напрямую.Без освежения.Я даю несколько кодов.

ps Также Page_Load имеет функцию, которая получает ежедневные курсы обмена

ASP

<asp:Button ID="Button1" runat="server" BackColor="#990000" 
 BorderColor="#333333" ForeColor="White" onclick="Button1_Click" Text="Calculate" 
 Width="85px" BorderStyle="Outset" style="margin-left: 20px" 
 ValidationGroup="grup1" />

КНОПКА КНОПКИ

protected void Button1_Click(object sender, EventArgs e)
{
double sayi1, sayi2, sayi3, hesap, sonuc;

sayi1 = Convert.ToDouble(Tb1.Text);
sayi2 = Convert.ToDouble(Tb2.Text);
sayi3 = Convert.ToDouble(Tb3.Text);


if (Tb1.Text.Contains(".") || Tb2.Text.Contains(".") || Tb3.Text.Contains("."))
{
  ...
  ...
  ...

Ответы [ 4 ]

1 голос
/ 26 января 2012

Используйте AJAX. Если нет, вы всегда будете вызывать событие обратной передачи. Или, с другой стороны, немного программировать на стороне клиента с помощью JavaScript.

0 голосов
/ 12 мая 2013
Create new benchmark or Add rules to a benchmark</h3>
             <asp:ScriptManager ID="ScriptManager1" runat="server">
                </asp:ScriptManager>
            <asp:updatepanel ID="instuctionsUpdate" runat="server" updatemode="Conditional" >
            <Triggers>
            <asp:AsyncPostBackTrigger ControlID="opener" EventName="click" />
            </Triggers>
            <ContentTemplate>
            <asp:button id="opener" runat="server" Text="Click me for instructions" 
            onClick="opener_click" EnableTheming="False" EnableViewState="False" />

JavaScript

    $("#<%=dialog.ClientID%>").dialog({ autoOpen: false });
        $("#<%=opener.ClientID%>").click(function(){
            $("#<%=dialog.ClientID%>").dialog("open");
        });
0 голосов
/ 26 января 2012

вы можете использовать UpdatePanel. ajaxify. Панель обновления в Asp.net

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btn" EventName="Click" />
        </Triggers>
        <ContentTemplate>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <br />
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            <br />
            <asp:Label ID="lblResult" runat="server" />
            <asp:Button ID="btn" runat="server" OnClick="btn_Click" Text="text" />
        </ContentTemplate>
    </asp:UpdatePanel>

в вашем коде позади. // хотя вам нужно проверить все введенные данные, чтобы избежать Format Execption

protected void btn_Click(object sender, EventArgs e)
        {
            int num1, num2, sum;
            TextBox t = (TextBox) UpdatePanel1.FindControl("Textbox1");
            num1 = Convert.ToInt32(t.Text);
            t = (TextBox)UpdatePanel1.FindControl("Textbox2");
            num2 = Convert.ToInt32(t.Text);
            sum = num1 + num2;
            lblResult.Text = sum.ToString();
        }
0 голосов
/ 26 января 2012

Напишите WebMethod в своем коде и вызовите WebMethod из функции click в jQuery.

$(document).ready(function() {
   $("<%= Button1.ClientID%>").click(function() {
     $.ajax({
             type: "POST",
             url: "PageName.aspx/MethodName",
             data: "{}",
             contentType: "application/json; charset=utf-8",
             dataType: "json",
             success: function(msg) {
                // Do something interesting here.
             }
          });
   });
});

В коде позади напишите webMethod,

public partial class _Default : Page 
{
  [WebMethod]
  public static string MethodName()
  {
    //Your code for calculation goes over here.
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...