Ich habe die Anforderung, Statusnamen basierend auf dem ausgewählten Land mithilfe des semantischen Dropdown-Menüs anzuzeigen. Also, ich benutze separate asp: DropDownList für Land und Staat im Hintergrund, um die Daten aus der Datenbank zu holen. Auf Page_Load() konstruiere ich die Menüelemente im Backend-Code als HTML-Zeichenfolge für das semantische Dropdown-Menü, um die Menüelemente zu laden und anzuzeigen. Es funktioniert jedes Mal gut, wenn ich das Land ändere. Aber jedes Mal wird die gesamte Seite neu geladen, was sich nicht gut anfühlt.SemanticUI-Dropdown-Menü nimmt Menüoptionen nicht dynamisch an
Jetzt versuche ich nur die Status Dropdown (Semantic Dropdown) zu aktualisieren, ohne die Seite neu zu laden. Daher habe ich die asp: dropdownlist -Steuerelemente in ein asp: UpdatePanel platziert, um das partielle Rendering der Seite durchzuführen. Aber wenn ich das Land ändere, wählt das Status-Dropdown nicht die aktualisierten Werte aus, die im UpdatePanel geladen werden. Während des Debugging konnte ich die Statuswerte im asp-Dropdown und die HTML-Zeichenfolge im Backend aktualisiert sehen.
<asp:UpdatePanel ID="UpdatePanel6" runat="server">
<ContentTemplate>
<!-- Country Dropdown and sql data source-->
<asp:SqlDataSource ID="SqlDataSourceCountry" runat="server" ConnectionString="<%$ ConnectionStrings:.......%>"
SelectCommand="......." SelectCommandType="StoredProcedure"></asp:SqlDataSource>
<asp:DropDownList ID="DropDownListCountry" runat="server" AutoPostBack="True" DataSourceID="......"
DataTextField="CountryName" DataValueField="CountryCode" Style="display: none">
</asp:DropDownList>
<!-- State Dropdown and sql data source-->
<asp:SqlDataSource ID="SqlDataSourceState" runat="server" ConnectionString="<%$ ConnectionStrings:..... %>"
SelectCommand=".........." SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter ControlID="......" Name="EnterCountryCode" PropertyName="......." Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<asp:DropDownList ID="DropDownListState" runat="server" AutoPostBack="True"
DataSourceID="......" DataTextField="....." DataValueField="......" Style="display: none">
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
<div id="dvIDCountryCodeDropdownClone" class="ui selection dropdown dvDropDownCountry">
<input type="hidden" name="countryDropdown">
<i class="dropdown icon"></i>
<%=strClsCountryNameHTML%>
</div>
<div id="dvIDStateCodeDropdownClone" class="ui selection dropdown dvStateCityDropDown">
<input type="hidden" name="stateDropdown">
<i class="dropdown icon"></i>
<%=strClsStateNameHTML%>
</div>
Hier ist das Skript auf den Dropdown-
<script type="text/javascript">
$('#dvIDCountryCodeDropdownClone').dropdown();
$('#dvIDStateCodeDropdownClone').dropdown();
</script>
Ich habe versucht, diese Initialisierung in pageload() als auch zu initialisieren, aber es hat nicht funktioniert. Ich suchte die Artikel und versuchte die vorgeschlagenen Optionen wie die Initialisierung des Dropdown-Menüs noch einmal, (.ui.dropdown) .dropdown ("refresh") usw. Nichts löste das Problem.
Kann jemand mir einige Ideen geben, um dieses Problem zu lösen?
Hallo Henry, es funktioniert zum ersten Mal gut. Wenn ich das andere Land ein zweites Mal wähle, funktioniert es nicht. Was könnte das Problem sein? –
Verändern Sie sich im semantischen Dropdown? Wenn Sie ändern, wird das Postback auf den Server aufgerufen? –
Ja, ich ändere mich im semantischen Dropdown. Wenn ich mich ändere, wird das Postback nicht aufgerufen. –