Почему этот RadComboBox не показывает мой выбор - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть этот Telerik ComboBox

                  <telerik:RadComboBox 
            runat="server" 
            ID="ddlSpecialist"
            AutoPostBack="True"            
            EnableLoadOnDemand="True"
            HighlightTemplatedItems="True"           
            OnClientItemsRequested="UpdateEmployeesCountField" 
            EnableItemCaching="True" 
            DropDownWidth="200px"
            OnItemsRequested="ddlSpecialist_ItemsRequested"  
            onclientblur="OnClientBlurHandler"                                                                                                 
            Width="75px"                                                                                                                    
          >

Раскрывающийся список работает и показывает мне ожидаемые данные. Но когда я выбираю одно из значений, выбор ComboBox не показывает выбранный EID. Он изменяется, а затем показывает этот текст как выбранный элемент «Pirs2020.VW_EMP» вместо ожидаемого номера EID. Pirs2020.VW_EMP - это имя проекта Visual Studio и имя представления, используемого для заполнения ComboBox.

Вот код, который я использую для заполнения ComboBox:

protected void ddlSpecialist_ItemsRequested(object sender, Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs e)
    {
        using (PIRSXEntities db = new PIRSXEntities())
        {
            var allPersonnel = db.VW_EMP.OrderBy(a => a.EID);
            if (!String.IsNullOrEmpty(e.Text))
            {
                allPersonnel = db.VW_EMP.Where(i => i.EID.ToString().Contains(e.Text.Trim()))
                    .OrderBy(i => i.EID);
            }
            IQueryable<VW_EMP> personnel = allPersonnel.Skip(e.NumberOfItems).Take(10);
            ddlSpecialist.DataSource = personnel.Distinct().ToList();
            ddlSpecialist.DataBind();
            int endOffset = e.NumberOfItems + personnel.Count();
            int totalCount = allPersonnel.Count();

            if (endOffset == totalCount)
                e.EndOfItems = true;

            e.Message = String.Format("Items <b>1</b>-<b>{0}</b> out of <b>{1}</b>",
                endOffset, totalCount);
        }
    }

Почему я получаю этот странный предмет, который отображается как выбранное значение?

1 Ответ

0 голосов
/ 09 апреля 2020

Мне удалось отследить проблему. Проблема была в том, что я не смог установить значения для DataText и Data Value. Я добавил код ниже между настройкой значения dataSource и командой Data Bind. Вот так это выглядит

 ddlSpecialist.DataSource = personnel.Distinct().ToList();
            ddlSpecialist.DataTextField = "Full_Name";
            ddlSpecialist.DataValueField = "EID";
            ddlSpecialist.DataBind();
...