У меня есть DropDownList - ASP.NET
WebForm, где он заполнен ролями и сделал это, как показано ниже из базы данных:
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
LoadDropDownBox();
}
}
public void LoadDropDownBox()
{
ddlUserRole.DataSource = aDbOperations.GetRoles(); //List of objects here
ddlUserRole.DataTextField = "roleName";
ddlUserRole.DataValueField = "roleId";
ddlUserRole.DataBind();
}
Работает нормально.Теперь мое требование - получить выбранную роль пользователя, когда я редактирую или обновляю данные пользователя.Допустим, у пользователя есть роль Admin , тогда при редактировании роль администратора должна быть выбрана по умолчанию вместе с другими значениями в DropDownList .Поэтому я попробовал что-то подобное на той же странице по умолчанию:
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
foreach (var item in aDbOperations.GetUserWithId(id)) //Passing query string here to match the id of the editing details
{
ddlUserRole.Value = item.roleName; //Get the selected role name by default while editing user details
}
LoadDropDownBox();
}
}
Даже попробовал это:
ddlUserRole.SelectedItem.Value = item.roleName;
Хотя это не сработало и не получило значение, выбранное по умолчанию вместе сдругие значения ролей из базы данных.Что-то здесь пропущено?
Обновление - 1 : Даже попробовал нижеследующее, но все еще не сделано
if (ddlUserRole.Items.FindByText(item.roleName.ToString()) != null)
{
ddlUserRole.Items.FindByText(item.roleName.ToString()).Selected = true;
}