0

ASP.Net、c# アプリケーションにダイアログがあります。このダイアログにはテキスト ボックスがあります。保存を選択すると、データベースでいくつかの検証を行う C# から関数を呼び出し、javascript/jquery.If で結果を取得します。挿入された値は true です。他の方法でダイアログを閉じて開いたままにしたいのですが、c# 関数から true を受け取った後、ダイアログ ボックスを閉じることができません。コードは次のとおりです。

ascx :

    <div id="popup" title="Choose Delegate">
        <label>Delegate<label><input type="textbox" value="" name="inputD" id=="inputD"/>
     </div>

Javascript:

$('#btnAdd').click(function(e){
$('#divPopup').slow("show");
$('#divPopup').dialog({
      height:150,
      width:300,
      modal:true,
      buttons:{
               "close":function(){$(this).dialog("close");}
               "save":function(){
                  var obj=document.getElementid("inputD");

                  $.ajax({
                    type: "POST",
                    url: "add.aspx/check",
                    data: "{delegate: '" + obj.Value+"'}",
                    contentType: "application/json; charset=utf-8", 
                    dataType: "json",
                    success: function (msg) {
                          rez= "OK";
                          $(this).dialog("close");
                         },
                    failure: function () {alert("FAIL"); }});                    }
        });
      }

C#:

[WebMethode]
public static Boolean check(string delegate)
{
   .....

   return true;

  }

C# メソッドは正しい値を返します。

私もこれを試します:

       $('#btnAdd').click(function(e){

           $('#divPopup').slow("show");
           $('#divPopup').dialog({
                       height:150,
                       width:300,
                       modal:true,
                       buttons:{
             "close":function(){$(this).dialog("close");}

            "save":function(){
                  var obj=document.getElementid("inputD");
                  var rez ;

                  $.ajax({
                    type: "POST",
                    url: "add.aspx/check",
                    data: "{delegate: '" + obj.Value+"'}",
                    contentType: "application/json; charset=utf-8", 
                    dataType: "json",
                    success: function (msg) {
                          rez= "OK";
                                                       },
                    failure: function () {alert("FAIL"); }
                 });       

                    if (rez="OK")
                          $(this).dialog("close");

         }
        });

ただし、この場合、rez 値は表示されません。

ありがとう !

4

2 に答える 2

1

「save」:function(e)でAjax呼び出しを使用して、ダイアログを閉じる場合は戻り値を確認し、それ以外の場合は開いたままにすることができます。

Ajax呼び出しは実装が本当に簡単です、私はあなたにそれを検索させます:)

于 2012-09-03T12:56:51.700 に答える
0

サーバー側にWebサービスが必要です。(できればREST)

http://restsharp.org/は、そのための使いやすいライブラリです。

詳細については、この質問をご覧ください。

フロントエンドでは、REST apiであるためにajax呼び出しを行います(jqueryを使用しているので、それほど難しくはありません;))

于 2012-09-03T12:56:36.310 に答える