2013-07-26 2 views
1

Im пытается создать Gridpanel от codebehind с изменением Columns. Нет подсказки, почему это не работает, я не получаю ошибку, только Columns не появится.Создание динамической Gridpanel в Codebehind

Ive получил Store и Gridpanel в Markup Код:

<ext:Store ID="Store_X" runat="server" AutoLoad="false" OnReadData="Store_X_refresh"> 
    <Proxy> 
     <ext:PageProxy /> 
    </Proxy> 

</ext:Store> 
[...] 
<ext:GridPanel runat="server" ID="gp_center" Region="Center" StoreID="Store_X" Title="X Tracking" > 
    <ColumnModel > 
      <Columns> 
       <ext:RowNumbererColumn ID="RowNumbererColumn2" runat="server" /> 

      </Columns> 
     </ColumnModel> 
    </ext:GridPanel> 

В моей Store_X_refresh я есть List<KeyValuePair<string, int>> fieldStringList = new List<KeyValuePair<string, int>>(); в Wich я загрузить то Columns я хочу (в зависимости от выбранных опций). Перед тем, как получить доступ к базе данных им это сделать:

Ext.Net.Model newModel = new Ext.Net.Model(); 
      foreach (var item in fieldStringList) 
      { 
       newModel.Fields.Add(new Ext.Net.ModelField() { Name = item.Key }); 
       gp_center.ColumnModel.Columns.Add(new Ext.Net.Column() { DataIndex = item.Key, ID = "col_" + item.Key, Text = item.Key, Width = item.Value }); 
      } 
      Store_X.Model.Add(newModel); 

, когда я его отладки, модели получить нужные данные, но и Gridpanel на UI не имеет Columns ... Когда я ставлю Columns в store/columnmodel вручную в markupcode Grid получает правильные данные, поэтому его не о некотором .DataBind() и моей DB-функциональности

ответ

2

Если вы меняете ColumnModel Grid во время DirectEvent, вы должны переконфигурировать его. Пожалуйста, посмотрите на этот пример: http://examples.ext.net/#/GridPanel/Data_Presentation/Grid_and_Store_Reconfigure/

+0

Спасибо, это решает проблему с отсутствием отображения столбцов - теперь я не получаю данные, даже если она загружена для хранения, но это другая история, которую я думаю :) – MMMagic