1

javascriptから呼び出したいvb.net関数があり、両方とも.ascxにあります。このコードでは、jquery を使用してダイアログをポップアップし、ダイアログのボタン (btnok) をクリックすると、vb.net 関数である関数 loadgraph() を呼び出したいと考えています。

<link href="css/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="javascript/jquery-1.8.3.js" type="text/javascript"></script>

<script src="javascript/jquery.bgiframe-2.1.2.js" type="text/javascript"></script>
<link href="css/demos.css" rel="stylesheet" type="text/css" />
<script src="javascript/jquery-ui.js" type="text/javascript"></script>


<script>
    // increase the default animation speed to exaggerate the effect
    $.fx.speeds._default = 1000;


    $(function() {
        $( "#element_to_pop_up" ).dialog({
            autoOpen: false,
            show: "blind",
            hide: "explode"
        });

        $( "#button" ).click(function() {
            $( "#element_to_pop_up" ).dialog( "open" );
            return false;
        });

         $( "#btnok" ).click(function(){
          $( "#element_to_pop_up" ).dialog( "close" );
             $.ajax({
  type: "POST",
  url: "Schart.ascx/loadgraph",
  data: "{}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) {
    // Do something interesting here.
    alert("called")
  }
});
          return false;
         });
    });
    </script>
4

1 に答える 1

1

使用しようとしているものはPageMethodsとして知られていますが、ページ メソッド コード (静的メソッド) は、一部のページ (aspx) コード ビハインドの一部である必要があります。ページ メソッド コードをユーザー コントロール (ascx) コード ビハインドに配置することはできません。
この制限の理由は、 で終わる URL.ascxはクライアントの消費を意図していないためだと思われます (404 が返されます)。これらは純粋にサーバー側の操作を目的としています。

あなたにとって簡単な解決策は、関連するメソッドをページ (aspx) のコード ビハインドに移動し、"Schart.aspx/loadgraph". すべてのコードを常に ascx ファイルに保持し、ダミー ページ メソッド コードから呼び出すことができるため、関連する UI とコードを ascx ファイル内に保持できます。

于 2013-01-08T09:12:44.283 に答える