C# 如何从asp.net ajax工具箱的CSV中选择一个值,并将该值传递给其他文本框?
我使用了Ajax工具包autocomplete,使用以下asp.net和C代码工作良好C# 如何从asp.net ajax工具箱的CSV中选择一个值,并将该值传递给其他文本框?,c#,asp.net,autocomplete,ajaxcontroltoolkit,C#,Asp.net,Autocomplete,Ajaxcontroltoolkit,我使用了Ajax工具包autocomplete,使用以下asp.net和C代码工作良好 <asp:UpdatePanel ID="updPnlMedicineName" runat="server" > <ContentTemplate> Name<br /> <asp:TextBox ID="txtMedName" runat="server" Width="150px"
<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中获取第一个值,即该文本框中的somename和其他两个值。i.e代码,单位必须分别填充到其他文本框中
请帮我完成这项任务
提前谢谢 最后,我自己得到了解决方案,在的帮助下,希望这对其他人也有帮助。因此,我为我的上述查询提供以下代码:
OnClientItemSelected on the AutoCompleteExtender control run a javascript function
<script type="text/javascript">
function ItemSelected(sender, args) {
__doPostBack(sender.get_element().name, "");
}
</script>
Put the below code on textchange event
string obj = txtMedName.Text.ToString();//in this texbox you are getting your
//values from autoextender and so store this value in to a string
string[] nameList = obj.Split(','); //finally using split separate your CSV
//values and store in an array which you are
// getting on autoextender
txtMedName.Text = nameList[0].ToString();//Now pass the values to respective
//texboxes
txtBox2.Text = nameList[1].ToString();
txtBox3.Text = nameList[2].ToString();