2011-01-27 27 views
3

javascriptを使用してWebページのコントロールのWebMethod(GetData())を呼び出そうとしています。JavaScriptのコントロールのWebMethodを呼び出す方法

<script type="text/javascript"> 
    $(document).ready(function() { 
     //this selector needs fixed 
     $('<%= Control1.ClientID %>').GetData(); 
    }); 
</script> 

<tel:RadScriptManager ID="RadScriptManager1" runat="server" /> 
<tel:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1"> 
    <uc1:Control ID="Control1" runat="server" /> 
</tel:RadAjaxPanel> 

UC:コントロールコード:

[WebMethod()] 
    [ScriptMethod()] 
    protected void GetData() 
    { 
     //stuff happens here 
    } 

私が使用するセレクタの種類を把握することはできません。私はページ上に複数のコントロールを持っており、別の時に呼びたいと思っています。このWebMethodを実行するために使用するセレクタの種類やコマンドは何ですか?

+0

http://stackoverflow.com/([SO投稿]やや似がありますquestion/886903/calling-asp-net-server-side-method-via-jqueryを参照してください)。 –

答えて

2

子/ユーザーコントロールでwebmethod/pagemethodを呼び出すことはできません。

あなたは親のaspxにこのWebメソッドを移動した場合、あなたはこのような何かをする必要があります:

jQuery.ajax({ 
    type: 'POST', 
    contentType: 'application/json; charset=utf-8', 
    data: '{}', 
    dataType: 'json', 
    url: 'MyPage.aspx/SomePageMethod', 
    success: function(result){ 
    alert(result); 
    } 
}); 
0

これは、あなたは、このようにあなたのコントロールIDの

$("[id$='_ControlIDHere']") 

EDITにプリペンドをASP.NET余分なテキストをignorning、それに渡すControlIDで終わるIDを持つ要素を選択します:私は誤解している可能性がありあなたが実際にあなたのコントロールへの参照を取得するためのセレクタを探している場合は、私のメソッドは動作します

0

ここでJavaScriptとASP.NETを混在させています。 .aspxファイルに< uc1:Control>タグがありますが、これは実際にブラウザに出力されるものではありません。コントロールはJavaScriptが実際に見るものである有効なHTMLコードを出力する必要があります。

結果のHTMLコード(つまり、右クリック - >ソースの表示)を見て、コントロールがマッピングされているHTML要素を見つけて、結果に基づいて新しいセレクタを構築する必要があります。

関連する問題