如何从jquery访问ASP.NET下拉框

时间:2010-04-18 13:05:37

标签: asp.net jquery

嗯,我的问题非常小。如何从jquery访问ASP.NET下拉列表?我试图使用下拉列表的“CssClass”属性来分配一个CSS类,然后使用该类访问该列表,但后来我发现当选择一个元素时类会改变,所以我的初始类被一个新的替换class.I将该列表的“CssClass”属性设置为“InstrumentDropDown”。当页面第一次加载时,其class属性设置为“InstrumentDropDown”,就像我预期的那样。但是当选择一个元素并进行回发时,它会变成“InstrumentDropDown sg selected”(可能是单词之间有下划线而不是空格)

我也不能使用“ClientID”属性,因为访问该列表的代码部分不在页面内,而是在单独的javascript文件中。

那我怎么才能访问呢?

4 个答案:

答案 0 :(得分:2)

我能想到的最简单的事情就是将你的Drop Down List包含在另一个id的元素中。这样,您可以像这样引用它,而不是担心ASP.NET ClientID。

脚本:

$('#dropDown select');

标记:

<div id="dropDown">
    <asp:DropDownList ID="DropDownList1" runat="server">
    </asp:DropDownList>
</div>

答案 1 :(得分:2)

当页面加载时,使用该类查找下拉框并将元素的id存储在变量中。

 $(function() {
      var $ddl = $('select.myClass'); // get here

      $('.somethingelse').click( function() {
            $.get('...',function(data) {
                $ddl.html(data);  // use here
            }
      }
 });

答案 2 :(得分:1)

如果页面上只有一个下拉列表,并且您确定了这一点,您也可以使用attribute ends-with selector ($=)通过ID找到它,如下所示:

$("[id$=dropDownID]")

例如,这会找到:<select id="MasterPage$Content$dropDownID">

答案 3 :(得分:1)

如果CssClass名称更改OnPostback,则此选择器将有效...

$(document).ready(function(){ 

   $('select.InstrumentDropDown_sg_selected, select.InstrumentDropDown').change(function(){
      var yourValue = $(this).val(); //retrieve value
      $(this).val('someValue'); //set value
   });

});