0

この問題と同様の質問を投稿し、自分で答えることができましたが、解決策は私を完全に満足させるものではありません.

Asp.Net/C# を使用して、クライアント側の検証に合格した場合にサーバー側のコードを実行するボタンがあります。私のアプリケーションでは、それが最も適していると思うので、このようにしたいと思います。

<asp:Button runat="server" ID="addBtn" Text="Add" OnClientClick="if(validateEntry()== false){return false;}" OnClick="addBtn_Click"/>

サーバーからデータを取得するために PageMethods を使用する validateEntry() という名前の jQuery 関数を呼び出します。データは検証プロセスに必要です。

function validateEntry() {

PageMethods.CheckEntry(params, function(result){//Evaluate result of PageMethods}
}

私の問題は、PageMethods から受け取ったデータを適切に処理する方法がわからないことです。それらを使用できるサブ機能にのみ渡すことができます。しかし、false を返すには、一種の変数のデータが必要です。

4

3 に答える 3

0

jqueryからページメソッドを使用する方法の実行例をここに投稿しました。

于 2010-04-22T13:05:02.253 に答える
0

私は解決策を考え出しましたが、より簡単なものに感謝します。

ページで隠しフィールドを使用し、サブ関数でページ メソッドからの結果をフィールドに書き込みます。

$("#pageMethodsResultField").val(result);

その後、フィールドから結果を読み取ってメイン関数で使用できます。

于 2010-04-22T16:31:22.707 に答える
0

PageMethods.CheckEntry が渡された関数を遅滞なく実行することを考えると、これを行うことができます。

function validateEntry() {
  var foo;
  PageMethods.CheckEntry(params, function(result){
    foo = "bar";
  });
  alert(foo);
}

これを試しても「foo」が表示されない場合は、関数が遅延しているため、これを行う方法を再考するか、より多くの情報を提供して、私たちがあなたを助けることができるようにする必要があります.

于 2010-05-06T11:31:38.693 に答える