Показать сообщение отдельно
Старый 21.01.2011, 16:51   #1  
Буденый is offline
Буденый
Участник
 
70 / 15 (1) ++
Регистрация: 07.06.2010
Адрес: Донецк
? В CRM на ASP странице теряется состояние элемента
Добрый день!

Подскажите такой момент в СРМ, есть кастомная страница 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, все работает.
Может кто-то сталкивался с подобным?