DropdownList не показывает выбранное значение

Я использовал DropDownList в Repeater. Он извлекает обозначение (администратор, менеджер, участник) из базы данных. Имя пользователя отображается правильно, даже предупреждение показывает правильные данные. но dropdownlist.selecteditem не действует. Оба пользователя показывают admin в раскрывающемся списке как выбранное значение по умолчанию, в db его менеджер.

protected void ListRepeaterView_ItemDataBound(object sender, RepeaterItemEventArgs e)
{



    DropDownList selectList = e.Item.FindControl("DropDownList1") as DropDownList;
    selectList.DataSource = ML.SelectAll();
    selectList.DataTextField = "Designation";
    selectList.DataValueField = "EmployeeID";

    selectList.DataBind();


    HiddenField Designation = (HiddenField)e.Item.FindControl("hdnDesignation");
   selectList.SelectedValue = Designation.Value.ToString();
   ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert(" + Designation.Value.ToString() + ");", true);




}

CS-файл

    <asp:Repeater ID="ListRepeaterView" runat="server" OnItemDataBound="ListRepeaterView_ItemDataBound">
<ItemTemplate><tr><td>
<asp:Label ID="EmpName" runat="server" Text='<%# Eval("EmployeeName") %>'></asp:Label>
 asp:HiddenField ID="hdnProductID" Value='<%# Eval("EmployeeID") %>' runat="server" />
</td><td>
<asp:HiddenField ID="hdnDesignation" Value='<%# Eval("Designation") %>' runat="server" />
<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true" >
 </asp:DropDownList>
</td></tr>
<br /><br /><br />
</ItemTemplate>
</asp:Repeater>

person Trushant04    schedule 25.04.2015    source источник
comment
dropdownlist.selecteditem не имеет никакого эффекта. Что ты хочешь этим сказать ?   -  person Matt Murdock    schedule 25.04.2015
comment
@HarveySpecter Данные правильно извлекаются из БД, действительные данные отображаются в предупреждении. Но этот код не устанавливает выбранный элемент.   -  person Trushant04    schedule 25.04.2015


Ответы (1)


Вы используете «Обозначение» в качестве текстового поля и «EmployeeID» в качестве поля значения при выборе. И затем вы пытаетесь установить выбранное значение на основе «Обозначение». Это действительно не может работать.

Что вы можете сделать, так это найти элемент по умолчанию по тексту:

// add some error handling for cases when item cannot be found
var defaultText = Designation.Value.ToString();
selectList.Items.FindByText(defaultText).Selected = true;
person Marian Polacek    schedule 25.04.2015
comment
Это сделано. Большое спасибо..!! :) - person Trushant04; 25.04.2015