Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用AutoCompleteBox WebForm获取数据值字段_C#_Asp.net_.net_Webforms_Telerik - Fatal编程技术网

C# 无法使用AutoCompleteBox WebForm获取数据值字段

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

我有一个radAutoCompleteBox,可以获取文本属性,但我需要ID

我的AppData.cs方法:

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;
                    }
                }
    }