0

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

        <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网格 - 而不是整个 storeProjectHistory 数据。

整个点击一个网格来填充另一个网格可以很好地使用 Javascript,但就像我之前所说的,它使用整个商店,我只想要一个项目的数据。

我以前用大量的 Javascript 弄得一团糟,它以某种方式工作,但我重写了整个代码以使其更清晰,现在我被困在这个特定的点上。我认为我可以使用一些网格属性和更少的 javascript 来实现我想要的,但我不太清楚如何。请帮忙?

顺便说一句:这是一个简化的示例,所以不要介意显然没有意义的字段。

4

1 回答 1

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>

稍后从代码隐藏中获取参数(在本例中为 id),并加载依赖于此 id 的第二个网格。

 int Id = int.Parse(e.ExtraParams["Id"]);
于 2013-09-19T14:40:40.833 回答