2017-02-07 22 views
2

У меня есть WebHierarchicalDatagrid, где я вручную создаю столбцы в своем событии PageLoad(). Ни один из моих столбцов не показывает начальную загрузку страницы, хотя у источника данных есть данные, соответствующие столбцам. (Я устанавливаю и связываю после того, как столбцы создаются/добавляются в сетку). Если я обновляю (PostBack), то они показывают. Я очистил и сбросил сетку разными способами.WebHierarchicalDatagrid Показывает Нет данных на начальном PageLoad

Если я определяю столбцы в разметке, то исходная загрузка страницы работает, конечно, но мне нужно динамически создавать столбцы на основе моих пользовательских ролей, и если я очищаю и воссоздаю нужные столбцы в моей загрузке страницы, странице prerender и т. Д. I получить ошибку в представлении.

Кажется, что вы не можете использовать разметку и код для определения сетки. Не было бы проблем, но у меня есть пользовательский (пользовательский) шаблон пейджера, определенный в разметке, и я потратил несколько дней, пытаясь получить создание, которое в кодовом названии я не могу просто указать создание пейджера codebehind, чтобы использовать существующий пользовательский элемент управления. Общий улов-22.

Инфракрасные решетки просто слишком тонкие, чтобы иметь дело с больше. Если вы остаетесь на прямой и узкой, они хороши, но сбились с пути, и у вас большие неприятности!

ответ

2

AutoGenerateBands и AutoGenerateColumns должен быть установлен в ложной. Кроме того, я не знаю, используете ли вы GridView для настройки сетки или нет, хотя я хотел сообщить, что коллекции WebHierarchicalDataGrid.Columns имеют отношение к корневому диапазону столбцов, определенных в заданное время или из разметки , Что касается столбцов, которые сгенерированы автоматически, к ним можно получить доступ с WebHierarchicalDataGrid.GridView.Columns.

Как я понимаю, вы создаете столбцы из Page_Load случае, попробуйте сделать это на WHDG_Init. Мне просто интересно, какой результат.

protected void WebHierarchicalDataGrid1_Init(object sender, EventArgs e) 
{ 
    WebHierarchicalDataGrid1.DataSource = new TestData().GetData(); 
    WebHierarchicalDataGrid1.DataKeyFields = "ID"; 

    WebHierarchicalDataGrid1.Columns.Add(CreateNewBoundDataField("ID", "ID")); 
    WebHierarchicalDataGrid1.Columns.Add(CreateNewBoundDataField("Name", "Name")); 
    WebHierarchicalDataGrid1.Bands.Add(CreateNewBand("ChildBand_0", "Child", "ChildID")); 

    WebHierarchicalDataGrid1.Bands["ChildBand_0"].Columns.Add(CreateNewBoundDataField("ChildID", "ChildID")); 
    WebHierarchicalDataGrid1.Bands["ChildBand_0"].Columns.Add(CreateNewBoundDataField("ID", "ID")); 
    WebHierarchicalDataGrid1.Bands["ChildBand_0"].Columns.Add(CreateNewBoundDataField("Address", "Address")); 

    WebHierarchicalDataGrid1.Bands["ChildBand_0"].Behaviors.CreateBehavior<Filtering>(); 
} 

public static BoundDataField CreateNewBoundDataField(string columnName, string headerText) 
{ 
    BoundDataField boundDataField = new BoundDataField(); 
    boundDataField.DataFieldName = columnName; 
    boundDataField.Key = columnName; 
    boundDataField.Header.Text = headerText; 
    return boundDataField; 
} 

public static Band CreateNewBand(string key, string dataMember, string dataKeyField) 
{ 
    Band band = new Band(); 
    band.AutoGenerateColumns = false; 
    band.Key = key; 
    band.DataMember = dataMember; 
    band.DataKeyFields = dataKeyField; 
    return band; 
} 
+1

Проблема была .GridView.Columns vs. Columns collection. Благодаря! Мне нравится создавать столбцы, группы в OnInit(), так что сохраните это изменение. Рекомендация продукта. Предупреждайте нас с предупреждением при работе с неправильной коллекцией столбцов. И почему у WHDG даже есть верхний, который только смущает вопрос? –

+0

Что вызывает еще один вопрос для Infragistics. Почему столбцы заполняются в коллекцию столбцов .GridView при обратной передаче? –

+0

Я предполагаю, что из-за жизненного цикла страницы и реализации времени разработки было принято решение иметь разные контейнеры и коллекции. WHDG можно использовать как простую плоскую сетку (WDG), и, возможно, именно поэтому она несколько запутанна, и в то же время WHDG должен иметь возможность обрабатывать инициализацию различных полос. Что нужно помнить, Столбцы из объекта GridView - автогенерированы; Столбцы, определенные в разметке и не автогенерируемые, могут использоваться из коллекции WebHierarchicalDataGrid.Column. –