我創建CustomControl像這一點,並使用「剋日什托夫的Bracha」的解決方案。這種方式,它更容易使用
用戶控件:
public class JooyaCheckBoxList : CheckBoxList
{
public JooyaCheckBoxList()
{
base.SelectedIndexChanged += JooyaCheckBoxList_SelectedIndexChanged;
base.PreRender += JooyaCheckBoxList_PreRender;
}
private void JooyaCheckBoxList_PreRender(object sender, EventArgs e)
{
SelectedItems = Items.Cast<ListItem>().Where(li => li.Selected).ToList();
}
private static List<ListItem> SelectedItems { get; set; }
private void JooyaCheckBoxList_SelectedIndexChanged(object sender, EventArgs e)
{
List<ListItem> CurrentSelectedItems = Items.Cast<ListItem>().Where(li => li.Selected).ToList();
if (CurrentSelectedItems.Count > SelectedItems.Count)
{
var li = CurrentSelectedItems.Except(SelectedItems).SingleOrDefault();
OnSelectedPropertChaned(li);
}
else if (CurrentSelectedItems.Count < SelectedItems.Count)
{
var li = SelectedItems.Except(CurrentSelectedItems).SingleOrDefault();
OnSelectedPropertChaned(li);
}
else
{
OnSelectedPropertChaned(null);
}
}
public event EventHandler<ListItem> SelectedPropertyChaned;
public void OnSelectedPropertChaned(ListItem changedItem)
{
SelectedPropertyChaned?.Invoke(this, changedItem);
}
}
,我用的是這樣的:
protected void cblKeywords_SelectedPropertyChaned(object sender, ListItem changedItem)
{
MessageDisplay= changedItem.Text + " || " + changedItem.Value;
}
我用你的解決方案,但我創造了'UserControl',但Session'的'inestad我使用和靜態property.tankyou – mohsen
而當我使用數據綁定時,你的答案還有另一個問題。 – mohsen