C# 自动完成框未调用Webmethod和pop,因为未正确显示

C# 自动完成框未调用Webmethod和pop,因为未正确显示,c#,asp.net,web-services,ajaxcontroltoolkit,C#,Asp.net,Web Services,Ajaxcontroltoolkit,我正在尝试使用ajaxToolkit autpcompleteExtender使用autocompletebox。我指的是这个链接。但现在我面临两个问题 当我在代码隐藏中使用webmethod时,它可以正常工作,但当我尝试从单独的webservice文件中使用它时,它不会调用它们的webmethod。为此,我还设置了服务路径,但它不起作用。请检查代码 .aspx .asmx 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用System

我正在尝试使用ajaxToolkit autpcompleteExtender使用autocompletebox。我指的是这个链接。但现在我面临两个问题

  • 当我在代码隐藏中使用webmethod时,它可以正常工作,但当我尝试从单独的webservice文件中使用它时,它不会调用它们的webmethod。为此,我还设置了服务路径,但它不起作用。请检查代码
  • .aspx

    
    
    .asmx

    使用系统;
    使用System.Collections.Generic;
    使用System.Linq;
    使用System.Web;
    使用System.Web.Services;
    使用System.Data.SqlClient;
    使用系统数据;
    使用系统配置;
    使用System.Collections.Specialized;
    名称空间映射
    {
    /// 
    ///WebService 1的摘要说明
    /// 
    [WebService(命名空间=”http://tempuri.org/")]
    [WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    //要允许使用ASP.NET AJAX从脚本调用此Web服务,请取消注释以下行。
    //[System.Web.Script.Services.ScriptService]
    公共类WebService 1:System.Web.Services.WebService
    {
    [System.Web.Script.Services.ScriptMethod()]
    [System.Web.Services.WebMethod]
    公共静态列表GetClass(字符串前缀)
    {
    SqlConnection con=新的SqlConnection(ConfigurationManager.ConnectionString[“dbconnection”].ToString());
    con.Open();
    SqlCommand cmd=newsqlcommand(“从Mst_类中选择类_Id、标题,其中标题类似于@Name+'%',con”);
    cmd.Parameters.AddWithValue(“@Name”,prefixText);
    SqlDataAdapter da=新的SqlDataAdapter(cmd);
    DataTable dt=新的DataTable();
    da.填充(dt);
    List ClassNames=新列表();
    对于(int i=0;i
  • 当我在代码后面使用webmethod时,它工作正常,但弹出窗口没有正确显示。它没有连接到textbox控件。请检查此图像文件
  • 请帮我解决这个问题


    谢谢。

    但弹出窗口显示不正确

    这可能是因为没有为弹出窗口获取正确的
    css
    。 这里有一个链接,有更多关于这方面的信息

  • 类似的问题

  • 编辑1 尝试取消对此行的注释

    // [System.Web.Script.Services.ScriptService] 
    
    基本上,这个方法将通过脚本调用,您不允许java脚本或jQuery调用它

    所以你的代码应该是

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Data.SqlClient;
    using System.Data;
    using System.Configuration;
    using System.Collections.Specialized;
    namespace Curriculam_Mapping
    {
        /// <summary>
        /// Summary description for WebService1
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        [System.Web.Script.Services.ScriptService]
        // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
        [System.Web.Script.Services.ScriptService]
        public class WebService1 : System.Web.Services.WebService
        {
             [System.Web.Script.Services.ScriptMethod()]
             [System.Web.Services.WebMethod]
             public static List<string> GetClass(string prefixText)
             {
                  SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ToString());
                  con.Open();
                  SqlCommand cmd = new SqlCommand("Select Class_Id,Title from Mst_Class where Title like @Name+'%'", con);
                  cmd.Parameters.AddWithValue("@Name", prefixText);
                  SqlDataAdapter da = new SqlDataAdapter(cmd);
                  DataTable dt = new DataTable();
                  da.Fill(dt);
                  List<string> ClassNames = new List<string>();
                  for (int i = 0; i < dt.Rows.Count; i++)
                  {
                      ClassNames.Add(dt.Rows[i][1].ToString());
                  }
                  return ClassNames;
               }
             }
         }
    
    使用系统;
    使用System.Collections.Generic;
    使用System.Linq;
    使用System.Web;
    使用System.Web.Services;
    使用System.Data.SqlClient;
    使用系统数据;
    使用系统配置;
    使用System.Collections.Specialized;
    名称空间映射
    {
    /// 
    ///WebService 1的摘要说明
    /// 
    [WebService(命名空间=”http://tempuri.org/")]
    [WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    //要允许使用ASP.NET AJAX从脚本调用此Web服务,请取消注释以下行。
    [System.Web.Script.Services.ScriptService]
    公共类WebService 1:System.Web.Services.WebService
    {
    [System.Web.Script.Services.ScriptMethod()]
    [System.Web.Services.WebMethod]
    公共静态列表GetClass(字符串前缀)
    {
    SqlConnection con=新的SqlConnection(ConfigurationManager.ConnectionString[“dbconnection”].ToString());
    con.Open();
    SqlCommand cmd=newsqlcommand(“从Mst_类中选择类_Id、标题,其中标题类似于@Name+'%',con”);
    cmd.Parameters.AddWithValue(“@Name”,prefixText);
    SqlDataAdapter da=新的SqlDataAdapter(cmd);
    DataTable dt=新的DataTable();
    da.填充(dt);
    List ClassNames=新列表();
    对于(int i=0;i
    我得到了解决方案,只需从web方法及其工作方式中删除静态关键字,我不知道这是否是一种正确的方法,但它对我来说是有效的。
    谢谢您的帮助。

    嘿,谢谢您的完美解决方案,但第一个问题仍然悬而未决。@Ganesh您应该在问题中加入服务和相关html。@Shekhar请检查修改后的问题。@Shekhar通过一个错误“复制”System.Web.Script.Services.ScriptService“属性”。我想它已经在上面一行声明了。@Ganesh它是wcf服务吗?如果是,那么您使用的是什么绑定?
    // [System.Web.Script.Services.ScriptService] 
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Data.SqlClient;
    using System.Data;
    using System.Configuration;
    using System.Collections.Specialized;
    namespace Curriculam_Mapping
    {
        /// <summary>
        /// Summary description for WebService1
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        [System.Web.Script.Services.ScriptService]
        // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
        [System.Web.Script.Services.ScriptService]
        public class WebService1 : System.Web.Services.WebService
        {
             [System.Web.Script.Services.ScriptMethod()]
             [System.Web.Services.WebMethod]
             public static List<string> GetClass(string prefixText)
             {
                  SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ToString());
                  con.Open();
                  SqlCommand cmd = new SqlCommand("Select Class_Id,Title from Mst_Class where Title like @Name+'%'", con);
                  cmd.Parameters.AddWithValue("@Name", prefixText);
                  SqlDataAdapter da = new SqlDataAdapter(cmd);
                  DataTable dt = new DataTable();
                  da.Fill(dt);
                  List<string> ClassNames = new List<string>();
                  for (int i = 0; i < dt.Rows.Count; i++)
                  {
                      ClassNames.Add(dt.Rows[i][1].ToString());
                  }
                  return ClassNames;
               }
             }
         }