Here is the code I recently used for creating a cascading multi-select dropdown. I hope this helps you:
<table>
<tr>
<td style="text-align: right;">
<asp:Label ID="lblCountry" runat="server" Font-Size="12px" Text="Country:" Style="margin-top: 19px !important"></asp:Label>
</td>
<td style="text-align: left;">
<select id="ddlCountry" multiple="multiple">
</select>
<asp:HiddenField ID="ddlCountryHid" runat="server" />
</td>
</tr>
<tr>
<td style="text-align: right">
<asp:Label ID="lblState" runat="server" Font-Size="12px" Text="State:" Style="margin-top: 19px !important"></asp:Label>
</td>
<td style="text-align: left;">
<asp:HiddenField ID="ddlStateHid" runat="server" />
<select id="ddlState" multiple="multiple" style="margin-left: 5px;">
</select>
</td>
</tr>
</table>
Javascript
<script type="text/javascript">
$(document).ready(function () {
// AJAX call for getting country data
// Code for populating and configuring multiselect for country dropdown
// AJAX call for getting selected country data and marking them as selected
// AJAX call for getting state data based on selected country
// Code for populating and configuring multiselect for state dropdown
// Event listener for handling state dropdown change
// Event listener for handling country dropdown change
// AJAX call for populating state dropdown based on selected countries
// Code for configuring multiselect for state dropdown
// AJAX call for getting selected state data and marking them as selected
// Event listener for selecting all options in state dropdown
});
</script>