我有一个使用ASP.NET AJAX调用Web服务的ASP.NET表单。如何使呼叫同步?
// test.aspx
<script type="text/javascript">
function GetDescription(){
var code = document.getElementById("<%=txtCode.ClientID%>").value;
var description =
MyNamespace.MyService.GetDescription(
code, onSuccessGetDescription, null, null);
return false;
}
function OnSuccessGetDescription(result){
var txtDescription =
document.getElementById("<%=txtDescription.ClientID%>");
}
</script>
<script type="text/javascript">
$(document).ready(//function () {
$('#<%=cmdSave.ClientID%>').click(function (e) {
e.preventDefault();
if (Page_ClientValidate()){
// Populate jQuery.UI dialog box with code and description
// and then
$("#confirm-dialog").dialog("open");
}
});
}
</script>
<asp:TextBox ID="txtCode" />
<asp:TextBox ID="txtDescription" />
<asp:Button ID="cmdSave" />
// test.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
txtCode.Attributes["onblur"] = "GetDescription();";
}
我所看到的这个问题的答案说我应该将async属性设置为false,但我不知道如何在这里做到这一点。 ASP.Net Ajax - PageMethods Synchronous call and retrieval of results表示无法完成。我想得到第二个意见。
如果我无法使呼叫同步,那么在OnSuccess函数返回之前进行GetTransaction轮询是否合法?什么是有效的(即不是CPU密集型)方式呢?
答案 0 :(得分:0)
jQuery.ajax({
url: 'http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value),
success: function (result) {
if (result.isOk == false) alert(result.message);
},
async: false
});