0

取引は次のとおりです。次のストアにバインドされた 2 つのグリッドがあります。

        <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 を 2 番目のストアの cdProject に等しくすることで (少なくとも理論上は) "リンク" されます。

グリッドに。最初のグリッド (storeProjects にバインドされている) の行をクリックするたびに、選択したプロジェクトの履歴で 2 番目のグリッドを部分的にのみ埋めたいと思います。つまり、cdProject = 最初から選択した idProject の storeProjectHistory のサブセットです。 grid - storeProjectHistory データ全体ではありません。

1 つのグリッド全体をクリックして別のグリッドを埋めることは Javascript でうまく機能しますが、前に述べたように、それはストア全体を使用し、特定のプロジェクトのデータのみが必要です。

私は以前に大量の Javascript で大混乱を起こしていましたが、何とか機能しましたが、コード全体を書き直してきれいにしましたが、この特定の時点で立ち往生しています。いくつかのグリッド プロパティを使用でき、以前に使用した Javascript をはるかに少なくして、目的を達成できると考えていますが、その方法がわかりません。助けてください?

ところで: これは単純化された例であるため、明らかに意味をなさないフィールドは気にしないでください。

4

1 に答える 1

0

グリッド内では、最初に選択モデルを使用する必要があります (これは、2 番目のグリッドの塗りつぶしイベントをトリガーする最初のグリッドです)

このようなもの

  <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 に依存する 2 番目のグリッドをロードします。

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