Javascript will call the UploadData function in the server and if it fails to connect to the function it will save into LocalStorage.
How can I catch the error in pagemethod in client-side? I try the below but the catch is not triggered.
try{
PageMethods.UploadData(val, onlineSuccess, onlineFailed);
}catch(e)
{alert("saved in local");}
Server-side:
[System.Web.Services.WebMethod]
public static string UploadData(string text)
{
if (text == null || text.Length == 0)
return String.Empty;
using (SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["scanner"].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
string[] data = text.Split('|');
cmd.CommandText ="COMMAND HERE"
cmd.Connection = cnn;
cmd.Parameters.Clear();
.................
cnn.Open();
try
{
cmd.ExecuteNonQuery();
return data[0].ToString()+" saved";
}
catch (Exception ex)
{
return "error : "+ex.Message;
}
}
}
}
Client-side calling the UploadData function on the server:
function onlineCall(val) {
//I want to use try-catch here so when it fails to connect to
//the server will save in the local storage
PageMethods.UploadData(val, onlineSuccess, onlineFailed);
}
function onlineSuccess(res, destCtrl) {
document.getElementById("scanned_item").innerHTML =res;
}
function onlineFailed(res, destCtrl) {
alert(res);
}
You just need to call this method using ajax and write response in localstorage
Decorate controller like this