脚本:
$(document).ready(function() {
$('#<%=txtfranchisecode.ClientID %>').change(function() {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "CreditLimit.aspx/databind",
data: '{Code: ' + $('#<%=txtfranchisecode.ClientID%>').val() + '}',
dataType: "json",
success: function(data) {
for (var i = 0; i < data.d.length; i++) {
$('#<%=tbDetails.ClientID %>').append("<tr><td><b>Name:</b></td><td>" + data.d[i].Name + "</td></tr><tr><td><b>Address:</b></td><td>" + data.d[i].Address + "</td></tr><tr><td><b>phone:</b></td><td>" + data.d[i].Phone + "</td></tr><tr><td><b>Email:</b></td><td>" + data.d[i].Email + "</td></tr><tr><td><b>Branch:</b></td><td>" + data.d[i].branch + "</td></tr>");
}
$('#<%=panel.ClientID %>').dialog("open");
},
error: function(result) {
alert("Error");
}
});
});
});
我在我的页面上使用了更新面板。它在我第一次使用时工作,但在回发后不起作用(在文本框更改事件后面我有一些服务器端计算)
通过谷歌我得到了这个链接Click me我尝试过但没有用 我该怎么办?
已编辑:尝试使用“Amresh Kumar Singh”解决方案
<script>
$(function() {
$('#<%=panel.ClientID %>').dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
},
buttons: [{
text: "Ok",
click: function() {
$(this).dialog("close");
}
}]
});
});
</script>
<script>
function BindData() {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "CreditLimit.aspx/databindbyId",
data: '{Code: ' + $('#<%=ddlname.ClientID%>').val() + '}',
dataType: "json",
success: function(data) {
for (var i = 0; i < data.d.length; i++) {
$('#<%=tbDetails.ClientID %>').append("<tr><td><b>Name:</b></td><td>" + data.d[i].Name + "</td></tr><tr><td><b>Address:</b></td><td>" + data.d[i].Address + "</td></tr><tr><td><b>phone:</b></td><td>" + data.d[i].Phone + "</td></tr><tr><td><b>Email:</b></td><td>" + data.d[i].Email + "</td></tr><tr><td><b>Branch:</b></td><td>" + data.d[i].branch + "</td></tr>");
}
$('#<%=panel.ClientID %>').dialog("open");
},
error: function(result) {
alert("Error");
}
});
}
C#:
protected void Page_Load(object sender, EventArgs e)
{
ddlname.Attributes.Add("OnChange", "BindData();");
}
第一次它运行良好,但下次它抛出和异常:
Error: cannot call methods on dialog prior to initialization; attempted to call method 'open'
最佳答案
King Fisher 你不能让它工作,因为文档准备在加载过程中只调用一次,所以我们可以在每次页面加载时加载 jquery 函数
将 jquery 函数放入函数中
<script>
function MainFunction(){
$('#<%=txtfranchisecode.ClientID %>').change(function() {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "CreditLimit.aspx/databind",
data: '{Code: ' + $('#<%=txtfranchisecode.ClientID%>').val() + '}',
dataType: "json",
success: function(data) {
for (var i = 0; i < data.d.length; i++) {
$('#<%=tbDetails.ClientID %>').append("<tr><td><b>Name:</b></td><td>" + data.d[i].Name + "</td></tr><tr><td><b>Address:</b></td><td>" + data.d[i].Address + "</td></tr><tr><td><b>phone:</b></td><td>" + data.d[i].Phone + "</td></tr><tr><td><b>Email:</b></td><td>" + data.d[i].Email + "</td></tr><tr><td><b>Branch:</b></td><td>" + data.d[i].branch + "</td></tr>");
}
$('#<%=panel.ClientID %>').dialog("open");
},
error: function(result) {
alert("Error");
}
});
});
}
</script>
并在后端页面加载中添加此代码
ScriptManager.RegisterStartupScript(this, this.GetType(), GetUID(), "MainFunction();", true);
这个函数也在后端aspx页面中用于每次生成新 key
public string GetUID()
{
return Guid.NewGuid().ToString("N");
}
关于javascript - Jquery Click 事件在回发后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27522326/