2015-12-08 1 views
0

Я хочу заполнить dropdown2 из существующего раскрывающегося списка. Я нацелен на это выпадающее меню, используя его классы.добавить опции для выбора, используя существующий раскрывающийся список

Кроме того, вы хотите добавить выбранную опцию из раскрывающегося списка в раскрывающееся меню.

<asp:DropDownList ID="DropDownList1" runat="server" class="dropdown" EnableViewState="true" AppendDataBoundItems="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="True"></asp:DropDownList> 

       <select class="dropdown2"></select> 

Затем на смену у меня есть это:

$(".dropdown").change(function() { 
    var selectedText = $(".dropdown option:selected").text(); 
    var selectedValue = $(".dropdown option:selected").attr('value') 

    $('.dropdown option').each(function() { 

     $(".dropdown2").append(new Option($(this).text(), $(this).attr('value'))); 
    }); 

    $(".dropdown2 option:contains(" + selectedText + ")").attr('selected', 'selected'); 
}); 

Как заполнить выбрать и добавить опции, используя существующие DropDownList ??

+0

Это не будет работать, так как у вас есть список asp.net выпадающий с постбэка. ваша js-логика никогда не будет выполнена. – DinoMyte

+0

Мне нужно это выпадающее меню с сообщением, потому что у меня есть привязка ретранслятора при изменении выбора ... – n00bie

ответ

0

Поскольку вы работаете с раскрывающимся списком asp.net, вам нужно сделать какой-то взлом, чтобы он работал. Событие Asp.net заменяет любые события js и автоматически запускает обратную передачу.

ASPX:

<asp:DropDownList ID="DropDownList1" runat="server" class="dropdown" EnableViewState="true" AppendDataBoundItems="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="True"></asp:DropDownList> 
<select class="dropdown2"></select> 
<script> 
var valueChanged = '<%=ValueChanged%>'; // get the server side variable and assign its value to a js variable 
$(document).ready(function() { 
    if(valueChanged.toLowerCase() == 'true') 
    { 
    var selectedText = $(".dropdown option:selected").text(); 
    var selectedValue = $(".dropdown option:selected").attr('value') 

    $('.dropdown option').each(function() { 
    $(".dropdown2").append("<option id="$(this).attr('value')">$(this).text()</option"); 
    }); 

    $(".dropdown2 option:contains(" + selectedText + ")").attr('selected', 'selected'); 
    } 
}); 

</script> 

ASPX.CS:

public class Test 
{ 

    public bool ValueChanged = false; // declare a public variable 
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    ValueChanged = true; // set the value to true on index change. 
} 

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