サーバー側の状態とクライアント側の状態を混在させています。クライアント側で行われた変更は、ビュー ステート/コントロール ステートを変更しません。そのため、ドロップダウンにデフォルトで選択された値以外を選択すると、サーバー側で登録された値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>