[英]Can we call non-static function in aspx.cs from JavaScript Post Method
[英]How to call a non-static method from aspx
我的aspx頁面后面的代碼中有一個方法,我需要從Javascript調用兩個方法,我遇到的問題是我試圖使用Json請求和WebMethod來執行此操作,但是該方法具有為靜態,並且無法從此方法訪問頁面組件和其他方法。
我正在嘗試類似的東西:
javascript功能
function Func(Value) {
var conf=confirm('Sure? '+valor)
if (conf==true)
{
BlockAction();
}
}
function BlockAction() {
$.ajax({
type: "POST",
url: 'frmVentaTelefonica.aspx/BlockAction',
data: "",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$("#divResult").html("success");
},
error: function (e) {
$("#divResult").html("Something Wrong.");
}
})};
后台代碼:
[WebMethod]
public static void BlockAcction()
{
try
{
frmVentaTelefonica venta = new frmVentaTelefonica();
venta.ConsultarVentaTelefonica();
venta.ImprimirTiquetes();
}
catch (Exception e)
{
throw;
}
}
當確認為真時,我想調用這兩個方法。
更新:需要訪問兩個這樣的方法:
public void ConsultarVentaTelefonica()
{
DatosImpresion = new List<Impresion>();
IServicioVentas servicioVentas;
servicioVentas = SATWebServiceLocator<IServicioVentas>.ObtenerServicio();
string Tiquetes = string.Empty;
foreach (GridDataItem dataItem in gridInfoVentaTelefonica.MasterTableView.Items)
{
if ((dataItem.FindControl("CheckBox1") as CheckBox).Checked)
{
Tiquetes = Tiquetes + (dataItem["Tiquete"]).Text + ",";
}
}
Tiquetes = Tiquetes.TrimEnd(Tiquetes[Tiquetes.Length - 1]);
Tiquetes = " " + Tiquetes + " ";
DataSet dsResultado = servicioVentas.EntregaTelefonica(sessionR8A.Turno.IdTurno, Tiquetes);
if (dsResultado.Tables.Count > 0 && dsResultado.Tables[0].Rows.Count > 0)
只要在true時運行它,這些方法就會在數據庫中更新並打印票證(首先讀取網格檢查的項目)
如果您試圖更新UI控件或讀取它們的值,那么您所描述的就是UpdatePanel控件。 頁面Web方法無法更新任何控件和刷新UI(除非通過JavaScript)。 如果要更新頁面異步狀態,則需要使用UpdatePanel。
如果您只是因為不想刷新頁面而嘗試使用javascript,請轉到“更新面板”。 您問題的答案是“不”,您無法訪問非靜態方法,例如您想做的事。
它僅支持靜態方法的原因是頁面實例化沒有完成,如果您要使用非靜態Web方法,則可以使用Web服務(.asmx)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.