在自动填充文本框中选择值时,需要在标签中显示ID

时间:2014-03-22 09:05:59

标签: c# asp.net ajax autocompleteextender

我有 AutoCompleteExtender 自动填充 tbDrugName 。到目前为止,它从我的数据库中提取 DrugIds 。 我想要的是自动完成 DrugNames 并在选择时,在其旁边的 lbllist 标签中显示 DrugId

enter image description here

这是我的cs代码:

[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
public static List<string> GetDrugNames(string prefixText, int count, string contextKey)
{

    SqlConnection sc1 = new SqlConnection();
    sc1.ConnectionString = "Data Source=localhost;Initial Catalog=Drug;Integrated Security=True";
    sc1.Open();
    /*Opens connection to drugTable and does string matching*/
    SqlCommand getdrugnames = new SqlCommand("Select * from DrugTable where DrugID like @Name+'%'", sc1);
    getdrugnames.Parameters.AddWithValue("@Name", prefixText);
    List<string> DrugNames = new List<string>();
    using (SqlDataReader sdr = getdrugnames.ExecuteReader())
    {
        while (sdr.Read())
        {
            string item = AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(sdr["DrugID"].ToString(), sdr["DrugName"].ToString());
            //item.drugid, item.drugname
            DrugNames.Add(item);
            //DrugNames has list objects
        }
    }   

    return DrugNames;
}

这是我的aspx代码:

<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</ajaxToolkit:ToolkitScriptManager>
<asp:TextBox ID="tbDrugName" runat="server" ></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender 
            ID="AutoCompleteDrugID" runat="server" 
            TargetControlID="tbDrugName" 
            ServiceMethod="GetDrugNames"
            MinimumPrefixLength="1" 
            CompletionInterval="200" 
            UseContextKey="True"  
            >

    </ajaxToolkit:AutoCompleteExtender>    
</ajaxToolkit:AutoCompleteExtender>

<asp:Label ID="lbllist" runat="server" Text="Label"></asp:Label>
</td>

1 个答案:

答案 0 :(得分:0)

您可以使用javascript来实现这一点,添加&#34; onChange&#34;属性到文本框,当文本框值更改时,直接更改标签文本。

将它放在代码中的Page_Load事件中:

this.tbDrugName.Attributes.Add("OnChange", "tbDrugName_OnChange()");

在标记中添加此javascript函数:

        function tbDrugName_OnChange() {
            var txtVal = document.getElementById('<%= tbDrugName.ClientID %>').value;
            document.getElementById('<%= lblList.ClientID %>').innerText = txtVal;
        }