J'ai 2 contrôles CheckBoxList - chk1 et chk2. J'ai besoin d'utiliser une publication asynchrone pour effacer les sélections d'une CheckBoxList si l'autre est sélectionnée. Ce qui suit ne sait pas chk1 si elle avait des sélections, et une Chk2 a été vérifié article:CheckBoxList AJAX async postback question
<asp:ScriptManager ID="sm1" runat="server" ></asp:ScriptManager>
<asp:UpdatePanel ID="upd" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="chk1" />
<asp:AsyncPostBackTrigger ControlID="chk2" />
</Triggers>
<ContentTemplate>
<asp:Label ID="result" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
<div style="overflow: auto; height: 150px;">
<asp:CheckBoxList runat="server" ID="chk1" OnDataBound="assignClickBehaviours" AutoPostBack="true">
<asp:ListItem Value="1" Text="One"></asp:ListItem>
<asp:ListItem Value="2" Text="Two"></asp:ListItem>
<asp:ListItem Value="3" Text="Three"></asp:ListItem>
<asp:ListItem Value="100" Text="..."></asp:ListItem>
<asp:ListItem Value="150" Text="One hundred and Fifty"></asp:ListItem>
</asp:CheckBoxList>
</div>
<div style="overflow: auto;">
<asp:CheckBoxList runat="server" ID="chk2" AutoPostBack="true">
<asp:ListItem Value="1" Text="One"></asp:ListItem>
<asp:ListItem Value="2" Text="Two"></asp:ListItem>
<asp:ListItem Value="3" Text="Three"></asp:ListItem>
</asp:CheckBoxList>
</div>
code derrière:
protected void Page_Load(object sender, EventArgs e)
{
processChecks();
}
private void processChecks()
{
if(chk2.SelectedIndex>-1)
chk1.ClearSelection();
}
Si la chose a été mis dans le panneau de mise à jour, il travaillerait. .. mais parce qu'il peut y avoir 150 éléments dans la case à cocher, le défilement sur le débordement: auto reviendrait vers le haut si un élément en bas a été sélectionné. J'ai besoin de l'état de défilement pour rester en place (d'où le besoin de publication asynchrone). Des idées ou des alternatives?
désolé ne sais pas « SelectedIndexChanged » eventName en quoi est-ce différent du code que j'ai posté qui ne fonctionne pas? – billfredtom