次のマークアップがあります。
<fieldset style="width:40%;">
<legend> Site User Role Management</legend>
<asp:Label ID="lblSiteUserDDl" runat="server" AssociatedControlID="ddlSiteUsers"
Text="Manage the roles in which a user is registered by selecting the user from the dropdown list below."></asp:Label>
<asp:DropDownList ID="ddlSiteUsers" runat="server" CssClass="dropdowns" AutoPostBack="True" />
<br /><br />
<fieldset id="rolemanagement" style="width:80%;" runat="server" >
<legend></legend>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Label ID="lblCurrentRole" runat="server" CssClass="literaltext"></asp:Label><br />
<asp:Label ID="lblSiteUserRole" runat="server" CssClass="literaltext"></asp:Label><br />
<asp:DropDownList ID="ddlUserRoles" CssClass="dropdowns" runat="server"/><br />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlSiteUsers" EventName="SelectedIndexChanged"/>
</Triggers>
</asp:UpdatePanel>
</fieldset>
</fieldset>
ページの下部にある次のスクリプト
<script>
$(document).ready(function() {
$('#<%= ddlSiteUsers.ClientID%> ').change(function () {
$(this).css({ 'color': 'black', 'font-size': '1.1em', 'font-weight': 'bold' });
var selecteditem = $(this).children("option:selected").text();
$('#<%= lblCurrentRole.ClientID%>').html("You selected the user: <span style='color:black;font-weight:bold;'>" + selecteditem + "</span>");
});
});
</script>
問題は、最初のラベルは適切に変更されますが、更新パネルによってページが返されるときに削除されることです。私はグーグルで見つけたさまざまな解決策をすべて試しましたが、どれもうまくいかないようです。今のところ、2つのラベルとドロップダウンのあるフィールドセットは常に表示されます。最終的には、ラベルを正しく表示すると、上部のドロップダウンの選択が変更されるまで、そのフィールドセットは非表示になります。