Web サービスを使用する Javascript 関数を使用しており、終了後にグリッド データソースを更新する必要があります。
このタスクを達成するために、RegisterClientScriptBlock を介して JavaScript 関数を呼び出し、次に UpdateGridDataSource メソッドを呼び出します。
しかし、デバッグ中に、最初に UpdateGridDataSource メソッドを呼び出すことがわかりました..次に、WebService でメソッドを呼び出します!
ASP.Net コード
System.Web.UI.ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "delete", "DrawPOI();", true);
UpdateDataSource();
JavaScriptコード
function DeletePOI(arg) {
//Some Code
$.ajax({
url: "JSBLL.asmx/DeletePOI",
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: "{id:'" + arg + "'}",
success: function (msg) {
alert(msg.d);
},
error: function (e) {
alert('Error');
}
}); //some code
return false;
}
ウェブサービス :
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string DeletePOI(string ID)
try
{
if (id == "")
throw new Exception();
long ID = Convert.ToInt64(id);
using (GuardEntities database = new GuardEntities())
{
var poi = database.POIs.Where(x => x.ID == ID).FirstOrDefault();
database.POIs.DeleteObject(poi);
database.SaveChanges();
}
return "POI Deleted Successfully";
}
catch
{
return "Error Occured";
}
}
問題は、UpdateDataSource() が DeletePOI(string ID) の前に呼び出されることです。