我有 AutoCompleteExtender 自动填充 tbDrugName 。到目前为止,它从我的数据库中提取 DrugIds 。 我想要的是自动完成 DrugNames 并在选择时,在其旁边的 lbllist 标签中显示 DrugId 。
这是我的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>
答案 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;
}