在级联下拉列表中触发更改事件

时间:2010-01-15 20:52:46

标签: jquery asp.net-mvc cascadingdropdown

我正在使用来自http://stephenwalther.com/blog/archive/2008/09/07/asp-net-mvc-tip-41-creating-cascading-dropdown-lists-with-ajax.aspx的级联下拉列表。

我需要在下拉列表中设置一个值,然后调用change事件,以便级联下拉列表第一次看起来不是空白。

但是更改事件没有调用try:

            $('#Country').trigger('change');
                       or
            $('#Country').change();

如何调用此下拉列表的更改事件以触发级联下拉列表。

2 个答案:

答案 0 :(得分:0)

您的下拉列表是控制服务器端(asp:dropdownlist标记)还是客户端(选择标记)?

如果它们是服务器端,则需要为控件注入客户端ID。这可能是事件发生不足的原因。

在ASP.NET中,服务器端控件具有不同的生成的客户端ID(因此ID为“Country”的DropDownList将具有类似ct01_ct050_Country的客户端ID。

在这些情况下,您可以使用以下命令在运行时在标记上注入客户端ID:

$('#<% Country.ClientID %>').change(function() {
    //code here
});

在运行时,呈现的代码/标记最终将如下所示:

$('#ct01_ct050_Country').change(function() {
    //code here
});

避免客户端/服务器ID的另一个选择是将唯一的CSS类名称应用于控件并由其选择:

标记:

<asp:DropDownList ID="Country" CssClass="countryDD" runat="server" />

和jQuery:

$('select.countryDD').change(function () {
    //code here
});

这个答案适用于直接的ASP.NET。我不确定它是否与MVC相关,因为我不使用该框架,但我认为它在概念或标记与客户端代码方面非常接近。

希望这可能有所帮助...

答案 1 :(得分:0)

对于我的级联下拉菜单,我使用jquery onbind

$('#Country').on('change', function () {
  //Do stuff here

});

$('#Country').bind('change', function () {
  //Do stuff here

});