2012-12-11 3 views
0

J'ai une recherche qui affiche les résultats. Les résultats sont de deux types Items et Contacts. Ils sont affichés sous un modèle dans un ListView en utilisant .Union(). J'ai deux pages ContactDetails.aspx et ItemDetails.aspx. Voici un exemple de <ItemTemplate>. Cela montre juste la partie Contact. Comment changer ces liens selon qu'il s'agit d'un objet ou d'un contact et modifier l'URL en fonction de cela?Utilisation de QueryString pour afficher les détails

Ceci est l'URL je besoin d'utiliser des articles ~/LoggedIn/ItemDetails.aspx?ItemID={0}

   <ItemTemplate> 
         <asp:HyperLink runat="server" ID="link" 
         Text='<%#Eval("Name") %>' 
         NavigateUrl='<%#Eval("ID", "~/LoggedIn/ContactDetails.aspx?ContactID={0}")        %>' /> 
        <br /> 

        <ul> 

         <li> 
          <span><b>Identity:</b><%#Eval("ID") %></span></li> 


         <li><span><b>Phone:</b><%#Eval("Phone") %></span></li> 

        </ul> 

            <asp:HyperLink runat="server" CssClass="btn" ID="ConUpdateLink" 
         Text='Update' 
         NavigateUrl='<%#Eval("ID", "~/Admin/UpdateContact.aspx?ContactID={0}") %>' />       

       </ItemTemplate> 

Hope this sens.

+0

Quelle est votre question? – ean5533

+0

@ ean5533 Comment changer ces liens selon qu'il s'agit d'un objet ou d'un contact et modifier l'URL en fonction de cela? – jackncoke

+0

@jackncoke: Fondamentalement, je peux voir deux liens sur votre code. Qu'est-ce que vous attendez? avez-vous besoin de transmettre quelque chose avec le 'contactId' ?? –

Répondre

1

changement il:

<asp:HyperLink runat="server" CssClass="btn" ID="ConUpdateLink" 
     Text='Update' 
     NavigateUrl='<%# GetValidUrl((string)Eval("ID")) %>' /> 

Puis dans le code derrière:

public string GetValidUrl(string id) 
    { 
     string ret = string.Empty; 
     if (/*it is item id*/) 
     { 
      ret = string.Format("~/Admin/UpdateContact.aspx?ContactID={0}", id); 
     } 
     else if (/*it is contact id*/) 
     { 
      ret = string.Format("~/LoggedIn/ItemDetails.aspx?ItemID={0}", id); 
     } 
     return ret; 
    } 

vous devez ajouter la partie pour le contrôle de types par identifiant, ou passer une autre valeur qui peut être utilisé à cet effet .

Questions connexes