簡體   English   中英

如何從aspx調用非靜態方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM