Состояние флажка потеряно после обратной передачи в пользовательском поле шаблона

Я создал собственное поле шаблона флажка, взяв его из System.Web.UI.WebControls.TemplateField. Шаблон для этого поля был создан путем создания класса, реализующего интерфейс ITemplate. Когда на странице происходит какая-либо обратная передача, значения в флажках теряются.

Чтобы временно заставить это работать, я использовал состояние просмотра для хранения состояния флажков в столбце флажков, но, идя дальше, я хочу полностью избежать этого, поскольку я буду использовать больше полей шаблона таким же образом в своем приложении.

Пожалуйста, дайте мне знать, если я что-то упустил.

Ниже приведен код:

namespace MyControls
{
    public class CheckBoxTemplateField : TemplateField
    {
        public CheckBoxTemplateField()
        {
            this.HeaderTemplate = new CheckBoxTemplate();
            this.ItemTemplate = new CheckBoxTemplate();
        }
    }

    public class CheckBoxTemplate : ITemplate
    {
        public void InstantiateIn(Control container)
        {
            CheckBox chk = new CheckBox();
            container.Controls.Add(chk);
        }
    }
}

С уважением, Гаурав.


person Gaurav    schedule 15.05.2012    source источник
comment
На самом деле я только что обнаружил, что выполнение того, что вы сделали здесь - получение из TemplateField и установка ItemTemplate в конструкторе - это единственный способ получить столбец TemplateField для правильного сохранения при обратной передаче. Мне нужно увидеть остальную часть вашего кода, чтобы понять, почему вы теряете состояние флажка, хотя это работает для меня.   -  person Dylan Nicholson    schedule 11.09.2013


Ответы (1)


флажок известен своей проблемой сохранения значения в постбэке

1 решение состоит в том, чтобы сохранить его значение в скрытом поле и прочитать его на сервере.

пс. это не имеет ничего общего с элементом управления viewstate.input не сохраняет свое значение в viewstate (за исключением текстового поля, в котором есть событие ontextchange)

person Royi Namir    schedule 15.05.2012
comment
Скрытое поле или состояние просмотра похожи. Я не хочу делать это вручную, потому что проблема не ограничивается флажком, в будущем мне придется использовать разные типы полей шаблона, которые могут содержать раскрывающиеся списки и т. д. - person Gaurav; 15.05.2012