2015-08-21 2 views
0

Мне нужно обновить значение одного раскрывающегося списка на основе выбора из другого раскрывающегося списка. Предостережение, которое у меня есть, вместо выпадающего списка, содержащего фактическое значение, отображаемое на странице, оно удерживает присвоенный идентификатор, что заставляет задуматься обо всей моей логике! Я хотел, чтобы обновить ddlLocation на основе от значения, выбранным для ddlCompName на самой ddlCompName страницы имеет текстовое значение, как On1, On2, On3, On4, но за кулисами она на самом деле жилье значения CompIDОбновление выпадающего списка из выбора другого

Это как ddlCompName получает заселен

private void GetComputerName() 
{ 
    this.ddlCompName.DataSource = GetComputerNames(DBToQuery); 
    this.ddlCompName.DataTextField = ComputerName; 
    this.ddlCompName.DataValueField = CompID; 
    this.ddlCompName.DataBind(); 
} 

И это обновление я хочу работать, но не работает в связи с числовым значением

protected void ddlCompName_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (VBS.Left(ddlCompName.SelectedValue.ToString(), 2) == "On") 
    { 
    ddlLocation.SelectedValue = "Building One"; 
    } 
} 

Что мне нужно изменить, чтобы я мог сделать обновление по своему желанию?

РЕДАКТИРОВАТЬ - @Nelak изменяющих к SelectedText вместо SelectedValue бросает эту ошибку компиляции

«System.Web.UI.WebControls.DropDownList» не содержит определение для «SelectedText» и нет методы расширения «SelectedText» принимать первый аргумент типа «System.Web.UI.WebControls.DropDownList» может быть найдено (вы пропали без вести с помощью директивы или ссылка на сборку?)

+0

'.SelectedText' вместо' .SelectedValue', если текст каждого элемента содержит On1, On2 и т. Д. – nelek

ответ

0

Если вы хотите отображать текст, а не значение затем попробуйте это

protected void ddlCompName_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (VBS.Left(ddlCompName.SelectedItem.Text, 2) == "On") 
    { 
    ddlLocation.SelectedValue = "Building One"; 
    } 
} 
Смежные вопросы