У меня есть список флажков на моей странице, и его источник данных установлен программно в событии PreLoad ():
protected void Page_PreLoad()
{
if (!Page.IsPostBack)
{
CheckBoxList1.DataSource = NoK.AcceptedNoks((Guid)Membership.GetUser().ProviderUserKey);
CheckBoxList1.DataTextField = "FullName";
CheckBoxList1.DataValueField = "NoKId";
CheckBoxList1.DataBind();
}
foreach (ListItem chk in CheckBoxList1.Items)
{
if (PrivateMessage.HasAccess(Request.QueryString["MessageId"], chk.Value))
{
chk.Selected = true;
}
}
}
, как вы видите в foreach, проверит, должен ли элемент проверяться или нет. и это работает хорошо. это означает, что конечный пользователь может редактировать элементы списка, и по умолчанию некоторые элементы были проверены. Теперь я хочу получить предметы, нажав кнопку:
protected void UpdateRightBtn_Click(object sender, EventArgs e)
{
var SelectedNokIds =
CheckBoxList1.Items
.OfType<ListItem>()
.Where(li =>
li.Selected == true)
.Select(l => new Guid(l.Value));
}
, но элементы в SelectedNokIds
все еще являются старыми элементами, и если флажки смены пользователя не действуют, SelectedNokIds
Почему ???
Пожалуйста, помогите!