выпадающий список asp.net onchange с использованием jquery для рендеринга HTML - PullRequest
0 голосов
/ 06 января 2012
    <asp:DropDownList runat="server" id="DropDownList1" 
DataSourceID="spdatasource1" DataValueField="CategoryName" 
AutoPostBack="false">
     </asp:DropDownList>  

этот элемент управления asp.net dropdonwlist отображает следующий html. это привязано к списку sharepoint. опция выпадающего списка заполняется динамически. Я пытаюсь манипулировать выбором опции для перенаправления на какую-то ссылку, например так: она перенаправляется на сайт, но всегда передает первое значение опции. Если бы я выбрал Рак, он все равно был бы http://somesite/events/Pages/default1.aspx?cat=Select Категория .. ПОЧЕМУ ??

<select name="ctl00$PlaceHolderMain$ctl00$DropDownList1" id="ctl00_PlaceHolderMain_ctl00_DropDownList1">
        <option value="Select Category">Select Category</option>
        <option value="All Categories">All Categories</option>
        <option value="Cancer">Cancer</option>
        <option value="Health Lecture">Health Lecture</option>
        <option value="Heart Health">Heart Health</option>
</select>

Jquery, используемый для захвата опции и передачи по URL:

var selectedOption = $("#ctl00_PlaceHolderMain_ctl00_DropDownList1 option:selected").val();

            $("#ctl00_PlaceHolderMain_ctl00_DropDownList1").change(function(e) {
                  window.location.href = 'http://somesite/events/Pages/default1.aspx?cat=' + selectedOption
            });

1 Ответ

0 голосов
/ 06 января 2012

Поскольку вы устанавливаете значение selectedOption перед блоком, который связывает вашу функцию с событием изменения вашего выпадающего списка.

Во время выполнения кода. значение $("#ctl00_PlaceHolderMain_ctl00_DropDownList1 option:selected").val() - «Выбранная категория». Это значение затем используется в вашей функции.

Ваша функция должна получить значение от объекта во время его изменения, используя $(this), чтобы получить ссылку на объект внутри функции.

$("#ctl00_PlaceHolderMain_ctl00_DropDownList1").change(function(e) {
    window.location.href = 'http://somesite/events/Pages/default1.aspx?cat=' + $(this).val();
    });
...