EXT.NET:如何只将一个商店的子集渲染到网格中?

时间:2013-09-18 14:59:43

标签: javascript extjs ext.net

所以这是交易:我有两个网格绑定到以下商店:

        <ext:Store ID="storeProjects" runat="server" UseIdConfirmation="true">
            <Reader>
                <ext:JsonReader IDProperty="idProject" >
                    <Fields>
                        <ext:RecordField Name="idProject" Type="Int" />
                        <ext:RecordField Name="nmProject" Type="String" />
                    </Fields>
                </ext:JsonReader>
            </Reader>
        </ext:Store>

        <ext:Store ID="storeProjectHistory" runat="server" UseIdConfirmation="true" >
            <Reader>
                <ext:JsonReader IDProperty="cdProject">
                    <Fields>
                        <ext:RecordField Name="cdProject" Type="Int" />
                        <ext:RecordField Name="nmProject" Type="String" />                             
                        <ext:RecordField Name="csStatus" Type="String" />                        
                        <ext:RecordField Name="dsDescription" Type="String" />
                        <ext:RecordField Name="dtChange" Type="Auto" DateFormat="MM/yyyy" />                              
                    </Fields>
                </ext:JsonReader>
            </Reader>
        </ext:Store> 

通过让第一个商店中的idProject等于第二个商店中的cdProject,它们是“链接”的(至少在理论上)。

关于网格。每当我单击第一个网格中的一行(绑定到storeProjects)时,我只想用所选项目的历史记录部分填充第二个网格 - 换句话说,就是storeProjectHistory的一个子集,其中cdProject =从第一个网格中选择idProject grid - 而不是整个storeProjectHistory数据。

整个单击一个网格以填充另一个网格可以正常使用Javascript,但就像我之前说的那样,它使用整个商店,我只想要项目的数据。

我以前曾经用大量的Javascript搞得一团糟,它以某种方式工作,但我重写了整个代码以使其更清洁,现在我陷入了这个特殊的境界。我认为我可以使用一些网格属性,而不是我之前用来实现我想要的javascript,但我无法弄清楚如何。请帮帮忙?

BTW:这是一个简化的例子,所以不要介意那些显然没有意义的字段。

1 个答案:

答案 0 :(得分:0)

在网格内部你应首先使用选择模型。(这是第二个网格填充事件的第一个网格)

类似这样的事情

  <SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel2" runat="server" Mode="Single">
                                    <DirectEvents>
                                        <Select OnEvent="RowSelect_Triger" Buffer="250">
                                            <ExtraParams>
 <%how many parameter u need decribe here-%>
      <ext:Parameter Name="Id" Value="record.data.Id" Mode="Raw" />
                                            </ExtraParams>
                                        </Select>
                                    </DirectEvents>
                                </ext:RowSelectionModel>
                            </SelectionModel>

稍后从codebehind获取参数(在本例中为id),并在此id上加载第二个网格依赖项。

 int Id = int.Parse(e.ExtraParams["Id"]);