【问题标题】:selectedindexchanged event of dropdownlist in asp.net not fired after reseting its selected value by Jquery通过 Jquery 重置其选定值后,asp.net 中下拉列表的 selectedindexchanged 事件未触发
【发布时间】:2013-05-29 06:47:40
【问题描述】:

我有两个下拉列表。当我更改第一个下拉列表时,第二个下拉列表将通过以下 jQuery 代码重置为选定的索引 0。

    $("select[id*='ddlWayType']").bind("change", function () {
        $("select[id*='ddlVehicle']").val("Select");
    });

我的 seconddropdown 有 AutoPostBack="true" 和 SelectedIndexChange 事件。 我的问题是重置后,当我从第二个下拉列表中选择项目时,请求正常发送到服务器,但第二个下拉列表的 selectedindexchange 事件没有被触发。当我们没有通过 jquery 重置 2nd DropDown 的选定索引时,它会正常触发。

【问题讨论】:

  • 首先它应该在change事件而不是click选择框事件上。
  • @wizkid ya,我也是这样做的,但这不是我问题的原因

标签: jquery asp.net


【解决方案1】:

您将服务器端状态与客户端状态混合在一起。在客户端所做的更改不会更改视图状态/控制状态。因此,如果您为ddlVehicle 下拉列表选择默认选择值以外的任何值,它将调用在服务器端注册的ddlVehicle_SelectedIndexChanged。我也验证了同样的结果。


您可以通过添加 web 方法/ajax 来实现这一点,并对客户端更改执行相同的操作。


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script type="text/javascript">
        jQuery(function ($) {
            $("select[id*='ddlWayType']").bind("change", function () {
                $("select[id*='ddlVehicle']").val("Select");
            });
        });

    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:DropDownList ID="ddlWayType" runat="server">
                <asp:ListItem Text="Select" Value="Select"></asp:ListItem>
                <asp:ListItem Text="Select1" Value="Select1"></asp:ListItem>
                <asp:ListItem Text="Select2" Value="Select2"></asp:ListItem>
            </asp:DropDownList>

            <asp:DropDownList ID="ddlVehicle" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlVehicle_SelectedIndexChanged">
                <asp:ListItem Text="Select" Value="Select"></asp:ListItem>
                <asp:ListItem Text="Select1" Value="Select1"></asp:ListItem>
                <asp:ListItem Text="Select2" Value="Select2"></asp:ListItem>
            </asp:DropDownList>
        </div>
    </form>
</body>
</html>

【讨论】:

  • 这意味着我们无法调用,selectedIndexchange 一次又一次地为相同的下拉值。
  • @VishwajeetSinghChouhan 是的,它只会在您更改所选值后调用,而不是相同的值。
  • @VishwajeetSinghChouhan 这能回答你的问题吗??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-12
  • 1970-01-01
相关资源
最近更新 更多