2009-10-06 7 views
1

Mon scénario de problème est le suivant:Link Two ObjectDataSource

J'ai un GridviewA lié à un objectdatasourceA. Lorsque je clique sur une ligne GridviewA, je veux qu'un autre objectdatasourceB sélectionne l'ID dans GridViewA, puis récupère les enregistrements pour GridviewB. C'est comme masterdetail. Puis-je le faire et comment utiliser javascript/jqueryscript pour le rendre fluide.?

Répondre

0

Votre ObjectDataSource intérieure devrait être ressembler à

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Getmethod" 
       TypeName="namespace"> 
       <SelectParameters> 
        <asp:ControlParameter ControlID="GridView1" Name="YourFieldName" PropertyName="SelectedValue" 
         Type="Int32" /> 
       </SelectParameters> 
      </asp:ObjectDataSource> 
0

faites tout d'abord que vous avez défini la propriété DATAKEY sur votre gridview A à la propriété ID de l'objet sous-jacent (ou tout ce que vous voulez passer à travers ObjectDataSource Méthode de sélection de B)

puis accédez à objectDataSource B, configurez-le, choisissez votre méthode select qui accepte un paramètre, puis cliquez sur suivant. il vous demandera où obtenir ce paramètre (je pense que vous pouvez choisir entre contrôle, session et autre chose) et sélectionner le contrôle, il remplira une liste de tous les contrôles sur la page et sélectionnera votre gridview A.

ceci passera sur les lignes sélectionnées dataKey de gridview A à la méthode liée à objectDataSource B. le code de sélection sera exécuté et votre gridview B affichera alors le sous-ensemble requis. Si vous sélectionnez une nouvelle ligne dans gridView A, elle mettra automatiquement à jour gridview B pour afficher les données requises.

vous pouvez le faire avec pratiquement aucun code écrit en supposant que vos méthodes sont correctement configurées. Si vous allez faire cela, jetez un oeil à certaines des méthodes de mise en cache disponibles car il peut être assez lourd de bande passante en fonction de la taille de vos jeux d'enregistrements ..