繁体   English   中英

jQuery调用返回数据的ASMX Web服务

[英]jQuery Calling an ASMX Web Service that Returns Data

我正在使用jsTree来组织用户创建的页面。 右键单击并按“重命名”后,我想触发一个JS函数,该函数在我的代码中击中一个函数,而无需回发(如果可能)。 我希望它抓住我在ID上的任何项目,然后在数据库中重命名它并更新jsTree。

这是一个示例代码隐藏函数:

[System.Web.Services.WebMethod]
protected void RenamePage(object sender, EventArgs e)
{
    DataTable dt = new DataTable();
    using (SqlConnection con = new SqlConnection(Global.conString))
    {
        con.Open();
        using (SqlCommand cmd = new SqlCommand("contentPageUpdate", con))
        {
            cmd.Parameters.Add("@title", SqlDbType.VarChar).Value = Global.SafeSqlLiteral(txtPage.Text, 1);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.ExecuteNonQuery();
        }
        con.Close();

        //Update Content Page Repeater
        using (SqlCommand cmd = new SqlCommand("contentPageGetAll", con))
        {
            using (SqlDataAdapter da = new SqlDataAdapter(cmd))
            {
                da.Fill(dt);
            }
        }
    }
}

不要认为它是jQuery击中C#函数,而是jQuery击中URI标识的资源。

当您使用jQuery发出AJAX请求时,您将给出目标的网址,并且它将对该网址执行标准的HttpRequest。 这可以是页面(Web窗体)或控制器动作(MVC)。

由于您似乎正在使用网络表单,因此可以创建一个新页面来处理此请求。 如果在Page_Load方法中放置一个断点,则会在调用AJAX方法时触发该断点:

在右键单击的javascript中,您可以使用jQuery的ajax方法,如下所示:

$.ajax('mypage.aspx');

在您的mypage.aspx中:

public void Page_Load(object sender, EventArgs e)
{
    Response.Write("You called me!");
}

您可以通过在$.ajax调用中添加一些参数来获得回写的响应:

$.ajax('mypage.aspx', { success: function(data, textStatus, jqXHR) {
    alert(data);
}});

它不完全是您要尝试执行的操作,但是我认为这可以使您基本了解使用JQuery调用URI并执行“数据库” * ;-)所涉及的内容。

您还将需要@MichaelShimmins的Jquery AJax代码(我在我的帖子中忽略了它)

自动完成的jQuery和SQL,ASP.NET

HTH。

* (that's not a technical term - apologies)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM