$.ajax
<script type="text/javascript">
function SaveArticoloVerificato(articolo, catena, sottocatena, idverificato) {
alert(idverificato);
var verificato = $(idverificato).checked;
var result = false;
$.ajax({
type: "POST",
url: "ModificaDimensioniArticoli.aspx/SaveArticoloVerificato",
data: "{CodiceArticolo:'" + articolo + "',Catena:'" + catena + "',Sottocatena:'" + sottocatena + "',Verificato:'" + verificato + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (msg) {
result = msg.d;
}
});
return result;
}
</script>
Si riachiama la funzione lato server: [System.Web.Services.WebMethod]
public static bool SaveArticoloVerificato(string CodiceArticolo, string Catena, string SottoCatena, bool Verificato)
{
if (!string.IsNullOrEmpty(codiceArticolo))
{
if(InsertUpdateProperty(codiceArticolo, "", "", "", (verificato) ? "1" : "0"))
return true;
}
return false;
}
Un altro esempio relativo a un datagrid, da un bottone in una riga si vuole lanciare un'azione chiamando un web service che faccia qualcosa per noi pessandogli i parametri relativi a quella riga del grid:<asp:LinkButton ID="LinkButtonActivate"
runat="server"
CssClass="ImageButtonAccept"
OnClientClick='<%# Eval("IDEHR_WHExamRequest","Javascript:ActivateRequest(
this,{0});")%>'
Width="50px"
Text='<%$ wHResources:wH_wHExam_Resources|UI, t_Active %>'>
</asp:LinkButton>
n.b. passandogli this gli passo la riga con cui poi posso lavorare nel jscript
Funzione Jscript che fà la chiamata al web service:function ActivateRequest(row,idRequest)
{
var conf = window.confirm('Sicuro di voler attivare la richiesta?');
var datePicker = $(row).parent().find('[id$=CalendarExtenderData]');
if (conf)
{
$.ajax({
type: "POST",
url: GetAppPath() + '/Modules/wHExams/WebServices/ActivateRequestService.asmx/ActivateRequest',
data: "{ 'idWhExamRequest': '" + idRequest + "', 'activationDate': '" + datePicker.val()+ "'}",
contentType: "application/json; charset=utf-8",
dataType: 'json',
async: false,
timeout: 2500,
success: function (data) //Variable data contains the data we get from serverside
{
alert(data.d);
}
});
}
}
Metodo del webservice che gestisce la chiamata lato server:
[WebMethod(EnableSession=true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public bool ActivateRequest(string idWhExamRequest, string activationDate)
{
wH.Api.ClinicianUser user = wH.Api.State.GetActiveClinician();
string authorInsert = user.SignName;
DateTime dtActivationDate = new DateTime();
long idRequest = Convert.ToInt64(idWhExamRequest);
wHExams.wHExamRequest.ToActivate_EHR_WHExamRequest toActivate = new wHExams.wHExamRequest.ToActivate_EHR_WHExamRequest(idRequest, dtActivationDate);
toActivate.SaveOnDB(dtActivationDate, authorInsert);
return true;
}