如何从aspx调用非静态方法
本文关键字:静态方法 调用 aspx | 更新日期: 2023-09-27 18:14:55
我在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;
}
}
我想在confirm为true时调用这两个方法。
更新:需要像这样访问两个方法:
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控件。一个网页方法不能更新任何控件和刷新UI(除非通过JavaScript)。如果你想异步更新页面的状态,UpdatePanel就是你要找的。
如果你正在尝试javascript只是因为你不想刷新页面,然后去更新面板。你的问题的答案是"不",你不能像你想的那样访问非静态方法。
它只支持静态方法的原因是页面实例化没有完成,如果你想使用非静态web方法,那么就去web service(.asmx)