我有一个网页,我使用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();
当我删除它时,服务器端事件正常工作。
答案 0 :(得分:2)
你的答案在问题标题中,如果你使用e.PreventDefault()
它会停止触发服务器端事件,或者如果你写了return false
语句,那么服务器端事件也不会触发。您从代码中移除了e.PreventDefault()
,然后它就会触发。
答案 1 :(得分:1)
在ASP按钮中添加此ClientIDMode="Static"
并选中。将源移动到浏览器时,将更改ASP:Button
ID 的天气。可能是一个原因。点击浏览器中的查看来源,检查ID
。