3

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

<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:Control コード:

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

どのようなセレクターを使用すればよいかわかりません。ページに複数のコントロールがあり、それらを異なるタイミングで呼び出したいと考えています。この WebMethod を実行するには、どのようなセレクターまたはどのコマンドを使用すればよいですか?

4

3 に答える 3

2

子/ユーザー コントロールで webmethod/pagemethod を呼び出すことはできないと理解しています。

この Web メソッドを親 aspx に移動する場合は、次のようにする必要があります。

jQuery.ajax({
  type: 'POST',
  contentType: 'application/json; charset=utf-8',
  data: '{}',
  dataType: 'json',
  url: 'MyPage.aspx/SomePageMethod',
  success: function(result){
    alert(result);
  }
});
于 2011-01-27T20:42:15.450 に答える
0

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

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

于 2011-01-27T19:21:22.430 に答える
0

これにより、渡した ControlID で終わる ID を持つ要素が選択されるため、asp.net がコントロール ID の前に追加する余分なテキストは無視されます。

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

編集:質問を誤解している可能性がありますが、実際にコントロールへの参照を取得するためのセレクターを探しているだけの場合、私の方法は機能します

于 2011-01-27T19:12:27.180 に答える