C# 无法使用AutoCompleteBox WebForm获取数据值字段
我有一个radAutoCompleteBox,可以获取文本属性,但我需要ID 我的AppData.cs方法:C# 无法使用AutoCompleteBox WebForm获取数据值字段,c#,asp.net,.net,webforms,telerik,C#,Asp.net,.net,Webforms,Telerik,我有一个radAutoCompleteBox,可以获取文本属性,但我需要ID 我的AppData.cs方法: public IEnumerable<Company> GetAllCompanies() { _companyRepository = new CompanyRepository(); return _companyRepository.GetAll(); } <telerik:RadAutoCompleteBox I
public IEnumerable<Company> GetAllCompanies()
{
_companyRepository = new CompanyRepository();
return _companyRepository.GetAll();
}
<telerik:RadAutoCompleteBox ID="acCompany" runat="server" EmptyMessage="Empresas..." AllowCustomEntry="False" RenderMode="Lightweight" DataSourceID="CompanyObjectDataSource" DataTextField="TradeName" DataValueField="IDCompany" />
protected void radGrid1_OnInsertCommand(object sender, GridCommandEventArgs e)
{
var item = e.Item as GridEditFormItem;
var company = (item.FindControl("acCompany") as RadAutoCompleteBox).Text;
var idCompany = (item.FindControl("acCompany") as RadAutoCompleteBox).DataValueField;
}
所以,我不能让公司正常运转。它总是返回字符串值“IDCompany”,而不是ID的实际值
有什么想法吗
谢谢 从中,似乎需要处理EntryAdded
事件,如下所示:
protected void RadAutoCompleteBox1_EntryAdded(object sender, AutoCompleteEntryEventArgs e)
{
// Label1 is made up here just for example's sake
// e.Entry.Text will give you the name selected
// e.Entry.Value will give you the ID selected
Label1.Text = e.Entry.Value + " was added.";
}
看起来,并没有像RadComboBox那个样简单的方法来获取id,但你们可以循环输入并通过文本找到条目。大致如下(未经测试):
是的,但是有了这个,我得到的是文本,而不是DataValueField(我用CompanyID属性指定)。这似乎与文档中的状态相反,它们都是
e.Entry.text
和e.Entry.Value
相同的值(即文本而不是DataValueField
)?换句话说,ID
值是否已经进入自动完成框?它必须有一个最简单的方法来完成它。@ggui,抱歉,没有更简单的方法了。不过,你可能会更幸运地请求telerik的支持。别忘了把答案贴在这里。
var autoCompleteBox = (item.FindControl("acCompany") as RadAutoCompleteBox);
int idCompany = 0;
if (autoCompleteBox !=null)
{
foreach (AutoCompleteBoxEntry entry in autoCompleteBox.Entries)
{
if (entry.Text == autoCompleteBox.Text)
{
idCompany = Convert.ToInt32(entry.Value);
break;
}
}
}