2016-10-25 13 views
0

私はaspxページのコードの中にメソッドを持っています.Javascriptから2つのメソッドを呼び出す必要があります。問題は私がやっていることですそれはJsonリクエストとWebMethodがありますが、このメソッドは静的でなければならず、このメソッドからページコンポーネントやその他のメソッドにアクセスすることはできません。aspxから非静的メソッドを呼び出す方法

私が好きなものしようとしていた:

を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; 
     } 
    } 

私は確認がtrueの場合、これらの2つのメソッドを呼び出したいです。

アップデート:このような二つの方法にアクセスすることが必要で :

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) 

だけで、データベース内の真である、これらの方法は、更新プログラムを実行して、チケットを印刷する(第1グリッドを読ん項目をチェックする)

+0

問題をより詳しく説明してください。コードの背後にあるページコンポーネントにアクセスする必要があるのはなぜですか?何を正確にアクセスしようとしていますか?必要な値をBlockActionメソッドに渡すだけではどうですか? –

+0

移動します。私たちは2016年です。WebAPIを使用してください! –

+0

私は古いと本当に本当に新しい技術者に更新したいと知っています。 – Jmperez

答えて

0

UIコントロールを更新しようとしている場合、または値を読み取っている場合は、UpdatePanelコントロールが記述されています。ページのWebメソッドは、JavaScriptを使用しない限り、コントロールを更新してUIを更新することはできません。 Asyncページの状態を更新したい場合、UpdatePanelはあなたが探しているものです。

0

あなたがページを更新したくないという理由だけでJavaScriptを試しているのであれば、更新パネルに行きます。あなたの質問に対する答えは「いいえ」です。あなたがやりたいような非静的メソッドにアクセスすることはできません。

静的メソッドのみをサポートする理由は、非静的Webメソッドを使用してWebサービス(.asmx)を使用する場合は、ページのインスタンス化が行われないことです。

関連する問題