Developer Programmer
دوشنبه 21 تیر 1389, 19:27 عصر
من AjaxToolkit رو دنلود کردم. و بعد از گذاشتن ScriptManager یک کنترل AutoCompleteTextBox روی فرم میذارم.
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:TextBox ID="TextBox1" runat="server" Width="785px"></asp:TextBox>
<asp:AutoCompleteExtender
ID="AutoCompleteExtender1"
runat="server" MinimumPrefixLength="1"
ServiceMethod="GetProducts"
ServicePath="WebService.asmx"
TargetControlID="TextBox1">
</asp:AutoCompleteExtender>
</div>
</form>
</body>
</html>
بعد داخل فایل webservice.asmx این کد رو اضافه کردم
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
namespace WebApplication1
{
[ScriptService]
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService
{
[WebMethod]
public string[] GetProducts(string prefixText)
{
string sql = "Select * from products Where name like @prefixText";
SqlDataAdapter da = new SqlDataAdapter(sql, ConfigurationSettings.AppSettings["ConnectionString"]);
da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 50).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["name"].ToString(), i);
i++;
}
return items;
}
}
}
منتها با تایپ در داخل TextBox هیچ اتفاقی نمیافته !!
مشکل از کجاست ؟
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:TextBox ID="TextBox1" runat="server" Width="785px"></asp:TextBox>
<asp:AutoCompleteExtender
ID="AutoCompleteExtender1"
runat="server" MinimumPrefixLength="1"
ServiceMethod="GetProducts"
ServicePath="WebService.asmx"
TargetControlID="TextBox1">
</asp:AutoCompleteExtender>
</div>
</form>
</body>
</html>
بعد داخل فایل webservice.asmx این کد رو اضافه کردم
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
namespace WebApplication1
{
[ScriptService]
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService
{
[WebMethod]
public string[] GetProducts(string prefixText)
{
string sql = "Select * from products Where name like @prefixText";
SqlDataAdapter da = new SqlDataAdapter(sql, ConfigurationSettings.AppSettings["ConnectionString"]);
da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 50).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["name"].ToString(), i);
i++;
}
return items;
}
}
}
منتها با تایپ در داخل TextBox هیچ اتفاقی نمیافته !!
مشکل از کجاست ؟