2015-06-08 7 views
1

Один столбец в DataGrid имеет DropDownList, отображающий местоположения, но в настоящее время он отображается только в том же месте для каждой строки, а не в правильном месте.DropDownList не отображает правильное значение в DataGrid

protected void PopulateDDLs(DropDownList ddlTrailerLoc) 
    { 
     DataSet dsTrailerLocation = DataUtils.GetAllGenSmall(Company.Current.CompanyID, "Description", "", 1, false, "Description", false, "TrailerLocationNOCODE", 0); 
     if (dsTrailerLocation.Tables[0].Rows.Count > 0) 
     { 
      ddlTrailerLoc.DataSource = dsTrailerLocation; 
      ddlTrailerLoc.DataValueField = "Description"; 
      ddlTrailerLoc.DataTextField = "Description"; 
      ddlTrailerLoc.DataBind(); 
     } 
     else 
     { 
      ddlTrailerLoc.Items.Insert(0, new ListItem("No Locations Entered", "0")); 
     } 
    } 

protected void dgList_ItemCreated(object sender, DataGridItemEventArgs e) 
    { 
DropDownList ddlTrailerLocation = e.Item.FindControl("ddlTrailerLoc") as DropDownList; 

      if (ddlTrailerLocation != null) 
      { 
       PopulateDDLs(ddlTrailerLocation); 
      } 
     } 

Вы можете видеть на картинке, которая отображает местоположение, но только показывает одно местоположение, которое неверно. Как установить раскрывающийся список для отображения правильного местоположения?

enter image description here

+1

Где вы устанавливаете значение для 'DropDownList'? Вы заполняете каждый из них потенциальными значениями (и по какой-то причине вы извлекаете «DataSet» дважды ...), но вы никогда не устанавливаете выбранное значение. – David

+0

Что мне нужно изменить, чтобы отобразить правильное местоположение? Я удалил DataSet из dgList_ItemCreated – user2026041

+0

Что делает DataUtils.GetAllGenSmall? В «Описание» содержатся правильные местоположения в вашем наборе данных? –

ответ

0

Пожалуйста, обратитесь к следующему ASP.NET DropDownList Binding Например:

<asp:DropDownList ID="cmbCountry" runat="server" 
AppendDataBoundItems = "True" 
DataSourceID="selectCountrySQL" 
DataTextField="Country" 
DataValueField="Country_Code" 
SelectedValue='<%# Bind("O_CountryCode") %>' > 
</asp:DropDownList> 

Вы должны указать обязательные для DataTextField (например Страна Name) и DataValueField (изд Код страны), как показано в этот пример.

Обратите внимание на линии:

SelectedValue='<%# Bind("O_CountryCode") %>' > 

Документы, касающиеся вашего дела, вместо O_CountryCode он должен "Trailer Location" поле в GridViewDataSource быть.

Для заполнения DropDownList со значениями, которые можно создать и связать другую DataSource (в данном примере selectCountrySQL), как следующее:

<asp:SqlDataSource id="selectCountrySQL" runat="server" 
    SelectCommand="SELECT [Country], [Country_Code] 
    FROM [Ref_Countries] 
    ORDER BY [Country]" /> 

Обратите внимание, что DropDownList и GridView связаны с различной DataSources.

Надеюсь, это поможет.

+0

Нужно ли что-нибудь добавить к PopulateDDLS? – user2026041

+0

Я продлил ответ: вы можете заполнить DropDown в коде, как это сделано в вашем примере. С наилучшими пожеланиями, –

Смежные вопросы