Я использую radgrid и создаю его в aspx, но при определенном действии я добавляю GridTemplateColumns в сетку.Динамически сгенерированные столбцы в radgrid исчезают после обратной передачи
private void CreateDateColumns(List<DateTime> occurenceList)
{
if (occurenceList != null && occurenceList.Count > 0)
{
int index = 1;
foreach (DateTime occurence in occurenceList)
{
string templateColumnName = occurence.Date.ToShortDateString();
GridTemplateColumn templateColumn = new GridTemplateColumn();
templateColumn.ItemTemplate = new MyTemplate(templateColumnName, index);
grdStudentAttendanceList.MasterTableView.Columns.Add(templateColumn);
templateColumn.HeaderText = templateColumnName;
templateColumn.UniqueName = templateColumnName;
index++;
}
}
}
private class MyTemplate : ITemplate
{
protected RadComboBox rcbAttendance;
private string colname;
private int _index;
public MyTemplate(string cName, int index)
{
colname = cName;
_index = index;
}
public void InstantiateIn(System.Web.UI.Control container)
{
rcbAttendance = new RadComboBox();
rcbAttendance.Items.Add(new RadComboBoxItem("---Select---", "-1"));
rcbAttendance.Items.Add(new RadComboBoxItem("Present", "1"));
rcbAttendance.Items.Add(new RadComboBoxItem("Absent", "2"));
rcbAttendance.Items.Add(new RadComboBoxItem("Leave", "3"));
rcbAttendance.ID = "rcbAttendance" + _index;
container.Controls.Add(rcbAttendance);
}
}
Все в порядке с созданием, но когда я нажимаю кнопку или любой выпадающий сохранить сделать обратную передачу только динамически генерируемое содержимое столбцов исчезает, и другие столбцы остаться. Что я заметил, что столбцы все еще на месте с заголовком, но только содержимое исчезло (в моем случае содержимое является списком)
После включения viewstate для сетки появляется только текст заголовка.
Что мне делать, чтобы сохранить содержимое столбцов после обратной передачи и получить их значения?