在代码隐藏中创建动态网格面板

时间:2013-07-26 09:36:08

标签: grid code-behind ext.net dynamic-columns

我尝试使用不同的Columns从代码隐藏创建一个Gridpanel。 不知道为什么它不起作用,我没有收到错误只是Columns不会出现。

我在标记代码中有StoreGridpanel

<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>>();我加载了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);

当我调试它时,模型得到正确的数据,但UI上的Gridpanel没有Columns ... 当我在Columns中手动将store/columnmodel放入标记代码时,Grid会获得正确的数据,因此它不是关于某些.DataBind(),也不是关于我的数据库功能

1 个答案:

答案 0 :(得分:2)

如果要在DirectEvent期间更改Grid的ColumnModel,则应重新配置它。请看这个例子:http://examples.ext.net/#/GridPanel/Data_Presentation/Grid_and_Store_Reconfigure/