Добрый день!
Подскажите такой момент в СРМ, есть кастомная страница ASP которая подгружает в CheckBoxList список пользователей:
Код:
CheckBoxList1.Items.Clear();
adminPlans = new AdminPlans(DevMode);
managers = adminPlans.GetManagers(planNaprID);
Session["managers"] = managers;
Session["adminPlans"] = adminPlans;
foreach (Manager manager in managers)
{
ListItem li = new ListItem();
li.Text = manager.ManagerName;
li.Value = manager.ID.ToString();
li.Selected = manager.IsUsedPlan;
CheckBoxList1.Items.Add(li);
}
данный код отрабатывает при первой загрузке ASP странички.
На форме есть кнопка, по которой происходит проверка какие значения изменились, тоесть, где включили чек-бокс, а где отключили.
Код:
protected void btnApprove_Click(object sender, EventArgs e)
{
ArrayList managers = (ArrayList)Session["managers"];
adminPlans = (AdminPlans)Session["adminPlans"];
for (int i = 0; i < CheckBoxList1.Items.Count; i++)
{
//проверяем, было ли изменено поле
if (CheckBoxList1.Items[i].Selected != ((Manager)managers[i]).IsUsedPlan &&
CheckBoxList1.Items[i].Value.ToString().Equals(((Manager)managers[i]).ID.ToString()))
{
....//некая обработка
}
}
}
Собственно, проблема в том что на ASP странице при запуске из проекта все работает, но не в CRM. На сервере сессии разрешены. Элемент CheckBoxList помечен runat="Server". После нажатия на кнопке происходит PostBack и страница перегружается с потерей значений CheckBoxList и соответственно цикл
for (int i = 0; i < CheckBoxList1.Items.Count; i++) не обрабатывается, так как Count = 0, смотрел в отладке.
Опять же, при запуске из проекта и нажатии на кнопке - CheckBoxList.Items.Count не равно 0, все работает.
Может кто-то сталкивался с подобным?