在使用Jquery重置其选定值后未触发的asp.net中的selectindexchanged事件

时间:2013-05-29 06:47:41

标签: jquery asp.net

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

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

我的第二次下载有AutoPostBack =“true”和SelectedIndexChange事件。 我的问题是在重新设置之后,当我从第二个下拉列表中选择项目时,一个请求正常消失到服务器但是第二个下拉列表的selectedindexchange事件没有被触发。当我们没有通过jquery重置第二个DropDown的选定索引时,会正常触发。

1 个答案:

答案 0 :(得分: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>