あなたは、現在選択されている項目を追跡しますセッション変数を作成することができます。
protected void Page_Load(object sender, EventArgs e)
{
CheckBoxList1.AutoPostBack = true;
List<ListItem> selectedItems = Session["SelectedItems"] as List<ListItem>;
if(selectedItems == null)
{
Session["SelectedItems"] = new List<ListItem>();
}
}
その後、選択した項目では、新しい選択した項目で、以前に選択した項目を比較して、項目が選択されたかを調べることができます変更するたびか選択解除:
protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
// Gather currently selected items
List<ListItem> newSelectedItems = new List<ListItem>();
foreach (ListItem item in CheckBoxList1.Items)
{
if (item.Selected == true)
{
newSelectedItems.Add(item);
}
}
List<ListItem> oldSelectedItems = Session["SelectedItems"] as List<ListItem>;
// Compare previous items count with current items count
// to find out whether item has been selected or deselected
if (newSelectedItems.Count > oldSelectedItems.Count)
{
// Item has been selected
ListItem selectedItem = newSelectedItems.Except(oldSelectedItems).First();
}
else
{
// Item has been deselected
ListItem deselectedItem = oldSelectedItems.Except(newSelectedItems).First();
}
Session["SelectedItems"] = newSelectedItems;
}
私はあなたのソリューションを使用していたが、私は 'UserControl'が、私は使っ' Session'のinestadと静的property.tankyouを作成し – mohsen
あなたの答えには、データバインディングを使用するときに別の問題があります。 – mohsen