2011-08-01 17 views
0

jsonオブジェクトを使用して、非静的メソッドをコードの背後から呼び出すのを助けてください。javascriptを使用して非静的メソッドをコードで記述する方法を教えてください。

次のコードは、aspxページで使用されます。

function columnDropdownScript() { 
       if (id == "ExpressionsLink") { 
        var dropdown = document.getElementById("<%=ddlTableNames.ClientID%>"); 
       } 

       /

/Configure AJAX call to server on itemChange of ddlTableNames 
       $.ajax({ 
        type: "POST", 
        url: "Webtop.aspx/FillColumnDropdown", 
        data: requestTableParameters, 
        //contentType: "plain/text", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function(msg) { 
         if (id == "ExpressionsLink") { 
          $("#ddlColumnNames").empty(); 

          } 
         } 
         // alert('Check Column DropDown' + msg.d.length); 
        }, 
        error: DisplayError //Event that'll be fired on Error 
       }); 

      }                 

次のコードは、aspx.csページに書かれている

[WebMethod] 
    public static List<string> FillColumnDropdown(string selTableName) 
    { 

     //Code to update Selected Columns in table 
    }    
+0

です。 – vladimir77

+1

非静的ページのメンバーにアクセスする場合は、ポストバック(同期または非同期)を発生させる必要があります。非スタティックメンバーへの非同期呼び出しでは、ASP.NET Ajaxを使用します。 –

+0

@OneHalfTrackMindMan ajaxを使用して可能にする方法のサンプルコードを投稿できますか? – psobhan

答えて

0

ページのインスタンスメソッドを呼び出したいので、私は、あなたがしたいと考えていViewStateなどのASP.NETプラットフォームによって提供される他のページのコントロールのプロパティまたは機能を使用することができます。しかし、あなたが普通のアヤックスリクエストを発射するとき、あなたはその可能性を使うことはできません。 ASP.NET Ajaxを使用する唯一のオプションです。その場合、ページはViewStateを読み込み、サーバー上のすべてのページのコントロールインスタンスを含む完全なライフサイクルを経てきます。

ほとんどの場合、ASP.NETを使用するために、必要なjavascriptがすべて用意されているため、カスタムJavaScriptコールは必要ありません。 何が必要ですか?ScriptManagerコントロールとUpdatePanelコントロールをページに追加し、ドロップダウンをUpdatePanelに配置し、AutoPostbackをtrueに設定するだけです。それで全部です。その後、そのドロップダウンリストのサーバー側SelectedIndexChangedイベントhabdlerを使用することができ、非同期で起動されます。 Introduction to the UpdatePanel Control

EDIT::ところで:あなただけのセッションまたはアプリケーションの状態またはキャッシュが、ノーページのコントロールのプロパティとあなたはまだプレーンを使用することができていないのViewStateが必要な場合のUpdatePanelは、このリンクをたどっ使用についての詳細情報については

ajax呼び出しと静的サーバーメソッド。ページのライフサイクルの実行ありえないと一度このWebMethod属性へのAJAX呼び出しパスCOSそのinpossible -

は実際にAJAXは限り私はあなたにしたいの使用ページのコンテキストを理解し、非常にトリッキーなこと:)

+0

ViewStateとページのライフサイクルがこれを行うことができない理由です。誰かが興味を持っているなら、より詳細な情報:http://encosia.com/why-do-aspnet-ajax-page-methods-have-to-be-static/ –

関連する問題