次のasp.netおよびC#コードを使用して、Ajaxツールキットのオートコンプリートを使用しました。
<asp:UpdatePanel ID="updPnlMedicineName" runat="server" >
<ContentTemplate>
Name<br />
<asp:TextBox ID="txtMedName" runat="server" Width="150px"
ontextchanged="txtMedName_TextChanged"></TextBox>
<cc1:AutoCompleteExtender ID="txtSearchID_AutoCompleteExtender" runat="server" DelimiterCharacters="" OnClientItemSelected="ItemSelected" Enabled="True" GetMedicine" ServicePath="Search/NameSearch.asmx" TargetControlID="txtMedName" MinimumPrefixLength="1">
</cc1:AutoCompleteExtender>
私の背後にあるコードは次のとおりです。
[WebMethod]
public string[] GetMedicine(string prefixText)
{
List<string> listString = new List<string>();
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["NewLandConnectionString"].ConnectionString))
{
SqlCommand com = new SqlCommand("select ProductName+','+ProductCode+',' + (select unitName from Unit where Unit.Id=product1.UnitId) as ProductDetails,ProductId from product1 where ProductName like '"+prefixText+"%'", con);
con.Open();
SqlDataAdapter adr = new SqlDataAdapter(com);
DataTable dt = new DataTable();
adr.Fill(dt);
for (int j = 0; j < dt.Rows.Count; j++)
{
string countProduct = dt.Rows[j]["ProductDetails"].ToString();
listString.Add(AutoCompleteExtender.CreateAutoCompleteItem(dt.Rows[j]["ProductDetails"].ToString(),dt.Rows[j]["ProductId"].ToString()));
}
}
string[] strarray = listString.ToArray();
return strarray;
}
オートコンプリートが機能すると、somename、code、unitの形式で値を取得しますが、値が選択されている場合は、csvから最初の値、つまりそのtexboxの「somename」と他の2つの値のみを取得する必要があります(つまり、 code,unit ) は、それぞれ他の texbox に入力する必要があります。
このタスクを達成するのを手伝ってください。
前もって感謝します !!