检查javascript函数中c#函数是否为true

时间:2014-07-02 21:46:10

标签: c# javascript mysql asp.net sql

好的,我有一个C#函数,如果sql table中存在行

,则返回true
System.Web.Services.WebMethod]
        public static bool Check(string ID)
        {
            string connectionString = ConfigurationManager.ConnectionStrings["SimpleDB"].ToString();
            using (SqlConnection con = new SqlConnection(connectionString))
            using (SqlCommand cmd = new SqlCommand(@"
                      IF EXISTS(SELECT 1 FROM Book Where Name = @ID)
                      SELECT 1 ELSE SELECT 0", con))
            {
                con.Open();
                cmd.Parameters.AddWithValue("@ID", ID);
                int result = Convert.ToInt32(cmd.ExecuteScalar());
                return (result == 1);
            }
        }

我有另一个Javascript函数,但似乎这个“PageMethods.Check(btn.id)”语句永远不会是真的,即使sql表中的这样的行存在,所以我想我没有正确检查它,我想知道是否问题是在javascript或C#

 function InIt(k ,l)
            {
                for (i = 1; i <= k; i++) {
                    for (j = 1; j <= l; j++) {
                        var btn = document.createElement("BUTTON");
                        btn.id = i + "_" + j;
                        if (PageMethods.Check(btn.id) == true) {
                            //DO SOMETHING
                        }
                        else {//DO SOMETHING ELSE 
                        }

                    }
                }
            }

2 个答案:

答案 0 :(得分:0)

PageMethod需要有一个回调函数,如 OnSuccess Onfailure

使用OnSuccess函数检查返回值是否为真

像这样

PageMethods.Check(btn.id,OnSuccess,Onfailure);

然后在OnSuccess函数

function OnSuccess(data)
{
if(data)
 // do something
else
 // do something else
}

我希望您在EnablePageMethods = true

中设置<asp:ScriptManager>

答案 1 :(得分:0)

确保在scriptmanger中将EnablePageMethods属性设置为true。否则,PageMethods将无法按预期工作。

<asp:ScriptManager runat="server" EnablePageMethods="true">

通过在我的沙盒中使用您的代码,它按预期工作。

<asp:ScriptManager runat="server" EnablePageMethods="true"/>

<script type="text/javascript">
        $(document).ready(function () {
            if (PageMethods.Check(10) == true) {
                alert(true);
            }
            else {
                alert(false)
            }
        });
    </script>


[WebMethod]
public static bool Check(string ID)
{
    if (ID.Length > 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}