0

我在 ASP.Net,c# 应用程序中有一个对话框。这个对话框有一个文本框。当我选择保存时,我想从 C# 调用一个函数,该函数在数据库中进行一些验证,然后在 javascript/jquery 中获取结果。如果插入的值为 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

您可以在“保存”:function(e) 中使用 Ajax 调用,如果关闭对话框,则检查返回值,否则保持打开状态

Ajax 调用实现起来真的很简单,我让你搜索一下 :)

于 2012-09-03T12:56:51.700 回答
0

您需要服务器端的网络服务。(最好是 REST)

http://restsharp.org/是一个易于使用的库。

看看这个问题以获取更多信息。

在前端,你对你的 REST api 进行 ajax 调用(我看到你使用 jquery,所以它不会那么难;))

于 2012-09-03T12:56:36.310 回答