проблема автозаполнения расширителя? - PullRequest
0 голосов
/ 06 июля 2010

Я использую расширитель автозаполнения, я пишу веб-сервис, веб-сервис работает нормально, когда я запускаю веб-сервис.Но когда я запускаю свою страницу 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 ..

ты можешь мне помочь.благодарю вас.

1 Ответ

0 голосов
/ 06 июля 2010

Добавьте «[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, чтобы увидеть, есть ли фактический вызов в службу.если не работает, тогда установите servicepath из события paga_Load вашей страницы aspx

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...