ASP.. NET按钮服务器点击事件在jquery e.p preventdefault()触发后不触发



我有一个网页,我使用jQuery AJAX从数据库加载数据来填充下拉列表。当jQuery函数运行时,服务器事件不会触发。

jQuery:

 $('#Cmb_PDept').on('change', function (e) {
                    e.preventDefault();
                    var DepartmentId = $('#Cmb_PDept :selected').val();
                    if (DepartmentId == 0) {
                        EmpCombo.empty();
                        textbox.val("");
                        return;
                    }
                    $.ajax({
                        type: "POST",
                        cache: false,
                        contentType: "application/json; charset=utf-8",
                        url: '/WebService/GetEmployeeByDepID.asmx/GetEmployee',
                        data: '{ "DepartmentId": "' + DepartmentId + '" }',
                        dataType: 'json',
                        success: function (data) {
                            var data = $.parseJSON(data.d)
                            var options = $("#Cmb_PEmp");
                            options.empty();
                            for (var i = 0; i < data.length ; i++) {
                                options.append("<option value='" + data[i]["EmployeeId"] + "'>" + data[i]["EmployeeName"] + "</option>");   
                            }
                            myEvent();
                        },
                        error: function () { alert("error"); }
                    });
                });

ASP。. NET Button控件

<asp:Button ID="Btn_PIncrementSave" runat="server" Text="Save" 
            OnClick="Btn_PIncrementSave_Click" CausesValidation="false" />

onClick事件

protected void Btn_PIncrementSave_Click(object sender, EventArgs e)
{
        try
        {
            TxBx_IncrementAmount.Text = Hid_BasicSalary.Value;
        }
        catch (Exception ex)
        {
            Utility.Msg_Error(this.Master, ex.Message);
        }
    }

此事件不触发。我想这是由于

 e.preventDefault();

当我删除这个,服务器端事件工作正常

您的答案在问题的标题中,如果您使用e.PreventDefault(),它会停止触发服务器端事件,或者如果您在这种情况下编写return false声明,服务器端事件也不会触发。你从你的代码中删除e.PreventDefault(),它将触发它。

为您的ASP按钮添加ClientIDMode="Static"和Check。当源移动到浏览器时,ASP:Button ID是否会改变。也许这将是一个原因。通过单击浏览器中的视图源来检查ID

最新更新