如何使用按钮填充数据而不进行回发

本文关键字:何使用 按钮 填充 数据 | 更新日期: 2023-09-27 18:24:01

我的GridView中有以下ASP.net按钮:

<asp:Button UseSubmitBehavior="false" runat="server" ID="btnShow" CssClass="btnSearch" Text="View All" CommandName="ViewAll" OnCommand="btnShow_Command" CommandArgument='<%#((GridViewRow)Container).RowIndex%>' />

背后的代码是:

protected void btnShow_Command(object sender, CommandEventArgs e)
{
    int index = 0;
    if (e.CommandName == "ViewAll")
    {
        index = Convert.ToInt32(e.CommandArgument);
        DataTable cacheTable = HttpContext.Current.Cache["ResultsTable"] as DataTable;
        string column = cacheTable.Rows[index].Field<string>("Guideline");
        string test = BookingResults.Rows[index].Cells[7].Text;
        string html = HttpUtility.HtmlDecode(column);
        ResultsDiv.InnerHtml = html;
    }
}

使用JQuery:在弹出窗口中显示ResultsDiv

//CONTROLLING EVENTS IN jQuery
$(document).ready(function () {
    //Click the button event!
    $(".btnSearch").click(function (e) {
        alert($(this).val() + " Clicked");
        e.preventDefault();
        //centering with css
        centerPopup();
        //load popup
        loadPopup();
    });
});

当我导航到页面时,生成的HTML如下所示(列中有多行具有相同的按钮):

<input type="button" name="ctl00$ctl33$g_36ed1b14_1f08_43fb_8099_eb3423a33ed9$BookingResults$ctl224$btnShow" value="View All" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$ctl33$g_36ed1b14_1f08_43fb_8099_eb3423a33ed9$BookingResults$ctl224$btnShow&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true))" id="ctl00_ctl33_g_36ed1b14_1f08_43fb_8099_eb3423a33ed9_BookingResults_ctl224_btnShow" class="btnSearch" />

现在发生的情况是,当我点击View All按钮时,它会显示警报,当我单击"确定"时,它在瞬间显示弹出窗口并刷新页面。

我如何修改/JQuery后面的代码,以便我可以点击任何按钮,它每次都会显示警报并显示弹出窗口,而不进行回发?

如何使用按钮填充数据而不进行回发

我认为在发出警报之前,您需要做的第一件事就是e.preventDefault();

//CONTROLLING EVENTS IN jQuery
$(document).ready(function () {
    //Click the button event!
    $(".btnSearch").click(function (e) {
        e.preventDefault();
        e.stopproPagation();
        alert($(this).val() + " Clicked");
        //centering with css
        centerPopup();
        //load popup
        loadPopup();
    });
});

正如我所认为的,警报让事件首先完成其默认工作。