【问题标题】:autocomplete extender problem?自动完成扩展器问题?
【发布时间】:2010-07-06 05:35:14
【问题描述】:

我正在使用自动完成扩展器,我编写了一个 web 服务,当我运行 web 服务时 web 服务工作正常。但是当我运行我的 aspx 页面时,它没有显示任何东西,自动完成没有显示只有文本框。这是我的代码......

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService 
{

    SqlConnection con;SqlDataAdapter da;
    public WebService () {

    //Uncomment the following line if using designed components 
    //InitializeComponent(); 
}

[WebMethod]
public string[] GetTitleInfo(string prefixText)
{
    int count = 10;
    string sqry = "select * from news_upload where newstitle like @prefixText";
    da = new SqlDataAdapter(sqry, "server=localhost;database=tfcnew;user id=sa;password=sql123");
    da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 100).Value = prefixText + "%";
    DataTable dt = new DataTable();
    da.Fill(dt);
    string[] items = new string[dt.Rows.Count];
    int i = 0;
    foreach (DataRow dr in dt.Rows)
    {
        items.SetValue(dr["newstitle"].ToString (), i);
        i++;
    }
    return items;
}

这是(以上)服务。

    <asp:TextBox ID="txtcomplete" runat ="Server" ></asp:TextBox>
        <asp:AutoCompleteExtender ID="AutoCompleteExtender2" runat="server" MinimumPrefixLength ="1" ServiceMethod ="GetSuggestions" ServicePath="~/WebService2.asmx" TargetControlID ="txtcomplete" >
        </asp:AutoCompleteExtender> 

这是aspx代码..

你能帮帮我吗?谢谢你。

【问题讨论】:

    标签: asp.net ajax


    【解决方案1】:

    在类声明前添加“[System.Web.Script.Services.ScriptMethod]”

    [System.Web.WebService(Namespace = "http://tempuri.org/")] 
    [System.Web.WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [System.Web.Script.Services.ScriptMethod]
    public class WebService : System.Web.Services.WebService {
    ...
    ...
    ...
    

    如果它已经在您的代码中,您可以检查服务路径。使用 Fiddler 或 Firebug 查看是否有对服务的实际调用。如果不起作用,则从您的 aspx 页面的 paga_Load 事件设置服务路径

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load  
       If Not Page.IsPostBack() Then
          AutoCompleteExtender2.ServicePath = ResolveUrl("~/mywebservice.asmx")                    
       End If
    End Sub
    

    【讨论】:

    • 它似乎没问题,因为它是独立工作的。我已经为你编辑了答案。您可以使用 fiddler 并可以检查您的请求的结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 2011-11-15
    相关资源
    最近更新 更多