2012-01-06 16 views
0
<asp:DropDownList runat="server" id="DropDownList1" 
DataSourceID="spdatasource1" DataValueField="CategoryName" 
AutoPostBack="false"> 
    </asp:DropDownList> 

このasp.net dropdonwlistコントロールのレンダリングはhtmlです。それはsharepointリストにデータバインドされています。ドロップダウンオプションに動的に値が入力されています。私はこのようなリンクにリダイレクトするオプションのonselectを操作しようとしています。それはサイトにリダイレクトされますが、常に最初のオプション値を渡します。私がCancerを選択した場合、それはまだhttp://somesite/events/Pages/default1.aspx?cat=Selectカテゴリになります。WHY ??asp.netドロップダウンリストonchange jqueryを使用してレンダリングしたhtml

<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 
      }); 

答えて

0

あなたの選択のドロップダウンの変更イベントにあなたの関数をバインドする前に、ブロック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(); 
    }); 
+0

実際の動作をご覧ください:http://jsfiddle.net/ydcgX/ –

関連する問題