Cómo dejar de actualizar la página principal después de hacer clic en el botón activador del evento en la página secundaria

programación


Diseñé un cuadro emergente modal de arranque que se abrirá después de hacer clic en un botón en la página principal. Quiero hacer algunas cosas en modal y cerrarlo, pero la página principal se actualiza después de hacer clic en un botón en la página secundaria y se envía el formulario modal. Probé **OnClientClick=”return false;”** pero deja de activar el evento del botón.
¿Alguien puede decirme cómo solucionarlo?

**CÓDIGO**

**Página principal**

HTML
<a href=\"/abcd/abcd1/abcd2.aspx?abcd3=" + Eval("abcd4") + "&abcd5=" + Eval("abcd6") + "&abcd7=" + Eval("abcd7") + "&abcd8=" + Eval("abcd8") + "\" class='li-modal'>"+ Eval("abcd9") +  "</a>

**PÁGINA INFANTIL**

ASP.NET
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" >
        <title>ABCDEF</title>
        <script language="javascript" type="text/javascript" src="/abcdef/xyzed/Script.js"></script>
       
    </head>
    <body scroll="no">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">X</button>    
        </div>
        <div class="modal-body" style="margin-left:-140px;">
      <div class="panel panel-default">
        <div class="panel-body">
          <form id="form1" runat="server">
            <table class="inputForm" cellspacing="0" cellpadding="0" border="0" style="width: 100%; height: 100%; table-layout: fixed">
                <thead>
                    <tr height="18">
                        <td>ABCDEF Order</td>
                    </tr>
                </thead>
                <tfoot>
                    <tr>
                        <td style="vertical-align: middle">
                        
                    <table>
                        <tfoot>
                        <tr>
                            <td>XYZED no:</td>
                            <td>
                                <asp:TextBox ID="No" runat="server" Width="50px" EnableViewState="False" />
                            </td>
                            <td>
                                <asp:Button ID="xyz1" runat="server" Text="|<" OnClick="xyz1_Click"  autopostback="false"/>
                                <asp:Button ID="xyz2" runat="server" Text="<" OnClick="xyz2_Click" OnClientClick="return false;"  />
                                <asp:Button ID="xyz3" runat="server" Text=">" OnClick="xyz3_Click" OnClientClick="return false;" />
                                <asp:Button ID="xyz4" runat="server" Text=">|" OnClick="xyz4_Click" OnClientClick="return false;" />
                            </td>
                        </tr>
                        </tfoot>
                    </table>

                        </td>
                    </tr>
                    <tr class="footerrow" height="24">
                        <td align="right">
                            <asp:Button ID="btnSubmit" CssClass="button" runat="server" Text="Ok" OnClick="btnSubmit_Click">
                            
                            </asp:Button><input class="button" id="btnCancel" onclick=" top.window.close();" type="button"
                                value="Cancel" name="btnCancel" /></td>
                    </tr>
                </tfoot>
            </table>
        </form>
        </div>
      </div>
      <div class="modal-footer">
        
      </div>
    </div>
        
    </body>

        
        
    </html>

    </asp:Content>

**Childpage.cs**

C#
protected void Page_Load(object sender, EventArgs e)
    {
        No = long.Parse(Request.QueryString["No"]);
        RuleNo = long.Parse(Request.QueryString["RuleNo"]);
        if (!IsPostBack)
        {
            No.Text = ((long)oldRuleNo).ToString();
        }
    }


    protected void xyz1_Click(object sender, EventArgs e)
    {
        No.Text = "1";

    }

Después de hacer clic en el botón xyz1_Click, se actualiza la página principal. Como lo detengo . Por favor ayuda

Lo que he probado:

Probé **OnClientClick=”return false;”** pero deja de activar el evento del botón.

Solución 1

Así es como funciona asp.net: haces clic en elementos que provocan una devolución de datos que vuelve a solicitar la página y permite que se ejecute el código del lado del servidor. Ese código luego puede modificar el estado de los controles y el html actualizado se envía al navegador para mostrarlo. Si desea que las cosas sucedan sin que la página se actualice, deberá usar ajax. Puede hacer que asp.net haga esto por usted colocando los controles relevantes dentro de un UpdatePanel, de modo que si ajusta la tabla que contiene sus botones y también la etiqueta “No” con un UpdatePanel, .net usará ajax para iniciar su devolución de datos y use nuevamente ajax para actualizar el html devuelto evitando una actualización de la página.

Clase UpdatePanel (System.Web.UI) | Documentos de Microsoft[^]

Solución 3

Lo intenté OnClientClick=”return false;” en mi botón, haga clic y funcionó para mí.
Ex:

use esta solución, funcionó para mí y no se actualiza cuando hago clic en el botón y se mostrará
la ventana emergente modal y no actualizada

コメント

タイトルとURLをコピーしました